]> Git Repo - linux.git/commit
KVM: x86/MMU: Allow NX huge pages to be disabled on a per-vm basis
authorBen Gardon <[email protected]>
Mon, 13 Jun 2022 21:25:21 +0000 (21:25 +0000)
committerPaolo Bonzini <[email protected]>
Fri, 24 Jun 2022 08:51:49 +0000 (04:51 -0400)
commit084cc29f8bbb034cf30a7ee07a816c115e0c28df
tree8324b06915b515128d5490888e78de420e18ae20
parent1c4dc57328bf218e999951824dce75c6125c4f3c
KVM: x86/MMU: Allow NX huge pages to be disabled on a per-vm basis

In some cases, the NX hugepage mitigation for iTLB multihit is not
needed for all guests on a host. Allow disabling the mitigation on a
per-VM basis to avoid the performance hit of NX hugepages on trusted
workloads.

In order to disable NX hugepages on a VM, ensure that the userspace
actor has permission to reboot the system. Since disabling NX hugepages
would allow a guest to crash the system, it is similar to reboot
permissions.

Ideally, KVM would require userspace to prove it has access to KVM's
nx_huge_pages module param, e.g. so that userspace can opt out without
needing full reboot permissions.  But getting access to the module param
file info is difficult because it is buried in layers of sysfs and module
glue. Requiring CAP_SYS_BOOT is sufficient for all known use cases.

Suggested-by: Jim Mattson <[email protected]>
Reviewed-by: David Matlack <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Signed-off-by: Ben Gardon <[email protected]>
Message-Id: <20220613212523.3436117[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Documentation/virt/kvm/api.rst
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/mmu/mmu_internal.h
arch/x86/kvm/mmu/spte.c
arch/x86/kvm/mmu/spte.h
arch/x86/kvm/mmu/tdp_mmu.c
arch/x86/kvm/x86.c
include/uapi/linux/kvm.h
This page took 0.061832 seconds and 4 git commands to generate.