KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages
authorSean Christopherson <seanjc@google.com>
Fri, 2 Jun 2023 00:58:59 +0000 (17:58 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 13 Jun 2023 16:16:03 +0000 (09:16 -0700)
commit0b210faf337314e4bc88e796218bc70c72a51209
treeafabd5aca8098ca168234e2ec33c6405cf881412
parent762b33eb90c9cc9227bf035cf2cf6f1458afecdb
KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages

Add a "never" option to the nx_huge_pages module param to allow userspace
to do a one-way hard disabling of the mitigation, and don't create the
per-VM recovery threads when the mitigation is hard disabled.  Letting
userspace pinky swear that userspace doesn't want to enable NX mitigation
(without reloading KVM) allows certain use cases to avoid the latency
problems associated with spawning a kthread for each VM.

E.g. in FaaS use cases, the guest kernel is trusted and the host may
create 100+ VMs per logical CPU, which can result in 100ms+ latencies when
a burst of VMs is created.

Reported-by: Li RongQing <lirongqing@baidu.com>
Closes: https://lore.kernel.org/all/1679555884-32544-1-git-send-email-lirongqing@baidu.com
Cc: Yong He <zhuangel570@gmail.com>
Cc: Robert Hoo <robert.hoo.linux@gmail.com>
Cc: Kai Huang <kai.huang@intel.com>
Reviewed-by: Robert Hoo <robert.hoo.linux@gmail.com>
Acked-by: Kai Huang <kai.huang@intel.com>
Tested-by: Luiz Capitulino <luizcap@amazon.com>
Reviewed-by: Li RongQing <lirongqing@baidu.com>
Link: https://lore.kernel.org/r/20230602005859.784190-1-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/mmu/mmu.c