[MODERATED] Re: [PATCH v5 6/8] NX 6

Ben Hutchings <[email protected]>
Newsgroups org.kernel.lore.historical-speck
Message-ID <[email protected]>
On Mon, 2019-07-01 at 15:52 +0200, speck for Paolo Bonzini wrote:
> From: Paolo Bonzini <[email protected]>
> Subject: [PATCH 6/8] kvm: mmu: ITLB_MULTIHIT mitigation
[...]
> +static int set_nx_huge_pages(const char *val, const struct kernel_param *kp)
> +{
> +	bool old_val = nx_huge_pages;
> +	bool new_val;
> +
> +	/* In "auto" mode deploy workaround only if CPU has the bug. */
> +	if (sysfs_streq(val, "off"))
> +		new_val = 0;
> +	else if (sysfs_streq(val, "force"))
> +		new_val = 1;
> +	else if (sysfs_streq(val, "auto"))
> +		new_val = boot_cpu_has_bug(X86_BUG_ITLB_MULTIHIT);
> +	else if (strtobool(val, &new_val) < 0)
> +		return -EINVAL;
> +
> +	__set_nx_huge_pages(new_val);
> +
> +	if (new_val != old_val) {
> +		struct kvm *kvm;
> +		int idx;
> +
> +		mutex_lock(&kvm_lock);
> +
> +		list_for_each_entry(kvm, &vm_list, vm_list) {
> +			idx = srcu_read_lock(&kvm->srcu);
> +			kvm_mmu_zap_all(kvm);
> +			srcu_read_unlock(&kvm->srcu, idx);
> +		}
> +		mutex_unlock(&kvm_lock);
> +	}
[...]

I've started trying to backport the NX patches to stable branches, and
I think I can take them back as far as 4.9.

However, kvm_mmu_zap_all() is a relatively new addition and looks hard
to backport.  I intend to make the nx_huge_pages parameter read-only
(0444 permissions) and delete this "if (new_val != old_val)" block. 
Does that seem reasonable?

Ben.

-- 
Ben Hutchings
Humans are not rational beings; they are rationalising beings.
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEErCspvTSmr92z9o8157/I7JWGEQkFAl2eYmsACgkQ57/I7JWG
EQm3lw/+PcvfLJ4hq67i5J2WYOdIGDufqUjp3uTbJN6bSzipzU9L76u67RuP6omI
DeoUU6Cdy7Bztr+dcoau3HcPY5qvymmOyN0oqbb/gNzPUCdiXNl811mVyTv4wbW1
z3UEZfcowl0yiU6cNb3Y1AA3tWGHLeJ+zHE3bS81/Ei07zUlYeMCCy2ADUYGvqn7
TwHzt2kdeNsMSvIvqPdOSBXxcIHzJgxJ2gNasj+50Jx1hRFs3nkX8YsaepfDjLdV
/+QfDhCPoWrbQppk1T+7bHCsu/15trlMZLRbkUOOQc4GICRBU9UMsB7lNOhyckvp
t3VfExkxx5rnHH4Iq8PswtyxjYpEtis42+ymyO8b5xm8UVjwV9hE7QnCykTxlIQk
qV1BIpyGezAVC6i+9MU4PXZjeIcP7iGMBNTMJqYlhjgFUNqmt3X6lhSUk+waqPda
jnAamquNHiAdIv0/C7j31qqnWu2+Vk1VGaUqqpFNZjop4yIMbO3nhbhr7kjBF4fB
xFnwEqWyMNQW3sOCACuPYj5vLBJR33XGsl9JaP1Kgltg3/fbvfXbNa7nb3H3Y1nJ
vmTJn3B6vTAuRVA6EHXLCwHw1HhmIDj79xepsPDVion1Nr6wIHMb4Fc4tQrxhI5l
0QPlUOkRzIGvggaij92STiCBoYjlQyREYGIv6GeavQ9SgRYJXIo=
=I5DD
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.