This is just the kernel (NX) side of Mingwei's series "Verify dirty logging works properly with page stats". Relatively to v3 of Mingwei's series[*], this fixes accounting (and tracking in the nonpaging case) of disallowed NX huge pages. I left off the selftests because I disagree with the "Dump stats" change, and this has snowballed enough. https://lore.kernel.org/all/20220401063636.2414200-1-mizhang@xxxxxxxxxx Mingwei Zhang (1): KVM: x86/mmu: explicitly check nx_hugepage in disallowed_hugepage_adjust() Sean Christopherson (5): KVM: x86/mmu: Tag disallowed NX huge pages even if they're not tracked KVM: x86/mmu: Properly account NX huge page workaround for nonpaging MMUs KVM: x86/mmu: Set disallowed_nx_huge_page in TDP MMU before setting SPTE KVM: x86/mmu: Track the number of TDP MMU pages, but not the actual pages KVM: x86/mmu: Add helper to convert SPTE value to its shadow page arch/x86/include/asm/kvm_host.h | 17 ++---- arch/x86/kvm/mmu.h | 9 +++ arch/x86/kvm/mmu/mmu.c | 104 ++++++++++++++++++++++---------- arch/x86/kvm/mmu/mmu_internal.h | 33 +++++----- arch/x86/kvm/mmu/paging_tmpl.h | 6 +- arch/x86/kvm/mmu/spte.c | 11 ++++ arch/x86/kvm/mmu/spte.h | 17 ++++++ arch/x86/kvm/mmu/tdp_mmu.c | 49 +++++++++------ arch/x86/kvm/mmu/tdp_mmu.h | 2 + 9 files changed, 167 insertions(+), 81 deletions(-) base-commit: 6521e072010d10380eca3d8a2203990e61e16ae0 -- 2.35.1.1178.g4f1659d476-goog