[PATCH v2 00/13] SMM implementation for KVM

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

 



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.

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(-)

-- 
1.8.3.1

--
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