• Ben Gardon's avatar
    KVM: x86/MMU: Allow NX huge pages to be disabled on a per-vm basis · 084cc29f
    Ben Gardon authored
    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: default avatarJim Mattson <jmattson@google.com>
    Reviewed-by: default avatarDavid Matlack <dmatlack@google.com>
    Reviewed-by: default avatarPeter Xu <peterx@redhat.com>
    Signed-off-by: default avatarBen Gardon <bgardon@google.com>
    Message-Id: <20220613212523.3436117-9-bgardon@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    084cc29f
tdp_mmu.c 57.2 KB