Re: [PATCH v2 00/13] SMM implementation for KVM

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

 



On 05/27/2015 08:05 PM, Paolo Bonzini wrote:
This brings together the remaining parts of SMM.  For now I've left the
"weird" interaction between SMM and NMI blocking, and I'm using the same
format for the state save area (which is also the one used by QEMU) as
the RFC.

It builds on the previous cleanup patches, which (with the exception
of "KVM: x86: pass kvm_mmu_page to gfn_to_rmap") are now in kvm/queue.
The first six patches are more or less the same as the previous version,
while the address spaces part hopefully touches all affected functions
now.

Patches 1-6 implement the SMM API and world switch; patches 7-12
implements the multiple address spaces; patch 13 ties the loose
ends and advertises the capability.

Tested with SeaBIOS and OVMF, where SMM provides the trusted base
for secure boot.


Nice work.  While I did not do a thorough review, the mmu bits look robust.



Thanks,

Paolo

Paolo Bonzini (13):
   KVM: x86: introduce num_emulated_msrs
   KVM: x86: pass host_initiated to functions that read MSRs
   KVM: x86: pass the whole hflags field to emulator and back
   KVM: x86: API changes for SMM support
   KVM: x86: stubs for SMM support
   KVM: x86: save/load state on SMM switch
   KVM: add vcpu-specific functions to read/write/translate GFNs
   KVM: implement multiple address spaces
   KVM: x86: pass kvm_mmu_page to gfn_to_rmap
   KVM: x86: use vcpu-specific functions to read/write/translate GFNs
   KVM: x86: work on all available address spaces
   KVM: x86: add SMM to the MMU role, support SMRAM address space
   KVM: x86: advertise KVM_CAP_X86_SMM

  Documentation/virtual/kvm/api.txt        |  52 ++-
  arch/powerpc/include/asm/kvm_book3s_64.h |   2 +-
  arch/x86/include/asm/kvm_emulate.h       |   9 +-
  arch/x86/include/asm/kvm_host.h          |  44 ++-
  arch/x86/include/asm/vmx.h               |   1 +
  arch/x86/include/uapi/asm/kvm.h          |  11 +-
  arch/x86/kvm/cpuid.h                     |   8 +
  arch/x86/kvm/emulate.c                   | 262 +++++++++++++-
  arch/x86/kvm/kvm_cache_regs.h            |   5 +
  arch/x86/kvm/lapic.c                     |   4 +-
  arch/x86/kvm/mmu.c                       | 171 +++++-----
  arch/x86/kvm/mmu_audit.c                 |  16 +-
  arch/x86/kvm/paging_tmpl.h               |  18 +-
  arch/x86/kvm/svm.c                       |  73 ++--
  arch/x86/kvm/trace.h                     |  22 ++
  arch/x86/kvm/vmx.c                       | 106 +++---
  arch/x86/kvm/x86.c                       | 562 ++++++++++++++++++++++++++-----
  include/linux/kvm_host.h                 |  49 ++-
  include/uapi/linux/kvm.h                 |   6 +-
  virt/kvm/kvm_main.c                      | 237 ++++++++++---
  20 files changed, 1337 insertions(+), 321 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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