Re: [PATCH 00/23] KVM: MMU: MMU role refactoring

Sean Christopherson
2022-02-09T22:31:24Z

On Fri, Feb 04, 2022, Paolo Bonzini wrote:
> Paolo Bonzini (23):
> KVM: MMU: pass uses_nx directly to reset_shadow_zero_bits_mask
> KVM: MMU: nested EPT cannot be used in SMM
> KVM: MMU: remove valid from extended role
> KVM: MMU: constify uses of struct kvm_mmu_role_regs
> KVM: MMU: pull computation of kvm_mmu_role_regs to kvm_init_mmu
> KVM: MMU: load new PGD once nested two-dimensional paging is
> initialized
> KVM: MMU: remove kvm_mmu_calc_root_page_role
> KVM: MMU: rephrase unclear comment
> KVM: MMU: remove "bool base_only" arguments
> KVM: MMU: split cpu_role from mmu_role
> KVM: MMU: do not recompute root level from kvm_mmu_role_regs
> KVM: MMU: remove ept_ad field
> KVM: MMU: remove kvm_calc_shadow_root_page_role_common
> KVM: MMU: cleanup computation of MMU roles for two-dimensional paging
> KVM: MMU: cleanup computation of MMU roles for shadow paging
> KVM: MMU: remove extended bits from mmu_role
> KVM: MMU: remove redundant bits from extended role
> KVM: MMU: fetch shadow EFER.NX from MMU role
> KVM: MMU: simplify and/or inline computation of shadow MMU roles
> KVM: MMU: pull CPU role computation to kvm_init_mmu
> KVM: MMU: store shadow_root_level into mmu_role
> KVM: MMU: use cpu_role for root_level
> KVM: MMU: replace direct_map with mmu_role.direct

Heresy! Everyone knows the one true way is "KVM: x86/mmu:"

$ glo | grep "KVM: MMU:" | wc -l
740
$ glo | grep "KVM: x86/mmu:" | wc -l
403

Dammit, I'm the heathen...

I do think we should use x86/mmu though. VMX and SVM (and nVMX and nSVM) are ok
because they're unlikely to collide with other architectures, but every arch has
an MMU...