Re: [PATCH v3 00/22] https://www.spinics.net/lists/kvm/msg267878.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Uh-oh, wrong subject.  Should be "KVM MMU refactoring part 2: role changes".

Supersedes: <20220221162243.683208-1-pbonzini@xxxxxxxxxx>

Paolo

On 4/14/22 09:39, Paolo Bonzini wrote:
Right now the "MMU role" is a messy mix of the shadow page table format
and the CPU paging mode (CR0/CR4/EFER, SMM, guest mode, etc).  Whenever
something is different between the MMU and the CPU, it is stored as an
extra field in struct kvm_mmu; for extra bonus complication, sometimes
the same thing is stored in both the role and an extra field.

This series cleans up things by putting the two in separate fields,
so that the "MMU role" represents exactly the role of the root page.
This in turn makes it possible to eliminate various fields that are
now redundant with either the CPU or te MMU role.

These patches have mostly been posted and reviewed already[1], and I
have now retested them on top of kvm/next.

Paolo

[1] https://patchew.org/linux/20220221162243.683208-1-pbonzini@xxxxxxxxxx/

Paolo Bonzini (21):
   KVM: x86/mmu: nested EPT cannot be used in SMM
   KVM: x86/mmu: constify uses of struct kvm_mmu_role_regs
   KVM: x86/mmu: pull computation of kvm_mmu_role_regs to kvm_init_mmu
   KVM: x86/mmu: rephrase unclear comment
   KVM: x86/mmu: remove "bool base_only" arguments
   KVM: x86/mmu: split cpu_role from mmu_role
   KVM: x86/mmu: do not recompute root level from kvm_mmu_role_regs
   KVM: x86/mmu: remove ept_ad field
   KVM: x86/mmu: remove kvm_calc_shadow_root_page_role_common
   KVM: x86/mmu: cleanup computation of MMU roles for two-dimensional
     paging
   KVM: x86/mmu: cleanup computation of MMU roles for shadow paging
   KVM: x86/mmu: store shadow EFER.NX in the MMU role
   KVM: x86/mmu: remove extended bits from mmu_role, rename field
   KVM: x86/mmu: rename kvm_mmu_role union
   KVM: x86/mmu: remove redundant bits from extended role
   KVM: x86/mmu: remove valid from extended role
   KVM: x86/mmu: simplify and/or inline computation of shadow MMU roles
   KVM: x86/mmu: pull CPU mode computation to kvm_init_mmu
   KVM: x86/mmu: replace shadow_root_level with root_role.level
   KVM: x86/mmu: replace root_level with cpu_role.base.level
   KVM: x86/mmu: replace direct_map with root_role.direct

Sean Christopherson (1):
   KVM: x86: Clean up and document nested #PF workaround

  arch/x86/include/asm/kvm_host.h |  19 +-
  arch/x86/kvm/mmu.h              |   2 +-
  arch/x86/kvm/mmu/mmu.c          | 376 ++++++++++++++------------------
  arch/x86/kvm/mmu/paging_tmpl.h  |  14 +-
  arch/x86/kvm/mmu/tdp_mmu.c      |   4 +-
  arch/x86/kvm/svm/nested.c       |  18 +-
  arch/x86/kvm/svm/svm.c          |   2 +-
  arch/x86/kvm/vmx/nested.c       |  15 +-
  arch/x86/kvm/vmx/vmx.c          |   2 +-
  arch/x86/kvm/x86.c              |  33 ++-
  10 files changed, 219 insertions(+), 266 deletions(-)





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux