On 16/07/20 05:41, Sean Christopherson wrote: > The primary purpose of this series is to implement a suggestion from Paolo > to have the MMU make the decision between 4 and 5 level EPT/TDP (when > 5-level page tables are supported). Having the MMU "own" the decision of > whether or not to use 5-level paging leads to a variety of nice cleanups, > and ultimately gets rid of another kvm_x86_ops. > > Patch 1 is a fix for SVM's shadow NPT that is compile tested only. I > don't know enough about the shadow NPT details to know if it's a "real" > bug or just a supericial oddity that can't actually cause problems. > > "Remove temporary WARN on expected vs. actual EPTP level mismatch" could > easily be squashed with "Pull the PGD's level from the MMU instead of > recalculating it", I threw it in as a separate patch to provide a > bisection helper in case things go sideways. > > Sean Christopherson (9): > KVM: nSVM: Correctly set the shadow NPT root level in its MMU role > KVM: x86/mmu: Add separate helper for shadow NPT root page role calc > KVM: VMX: Drop a duplicate declaration of construct_eptp() > KVM: VMX: Make vmx_load_mmu_pgd() static > KVM: x86: Pull the PGD's level from the MMU instead of recalculating > it > KVM: VXM: Remove temporary WARN on expected vs. actual EPTP level > mismatch > KVM: x86: Dynamically calculate TDP level from max level and > MAXPHYADDR > KVM: x86/mmu: Rename max_page_level to max_huge_page_level > KVM: x86: Specify max TDP level via kvm_configure_mmu() > > arch/x86/include/asm/kvm_host.h | 9 ++--- > arch/x86/kvm/cpuid.c | 2 -- > arch/x86/kvm/mmu.h | 10 ++++-- > arch/x86/kvm/mmu/mmu.c | 63 +++++++++++++++++++++++++-------- > arch/x86/kvm/svm/nested.c | 1 - > arch/x86/kvm/svm/svm.c | 8 ++--- > arch/x86/kvm/vmx/nested.c | 2 +- > arch/x86/kvm/vmx/vmx.c | 31 +++++++--------- > arch/x86/kvm/vmx/vmx.h | 6 ++-- > arch/x86/kvm/x86.c | 1 - > 10 files changed, 81 insertions(+), 52 deletions(-) > Queued, thanks. Paolo