[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-----