lkml.org 
[lkml]   [2015]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 00/13] SMM implementation for KVM
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(-)
>



\
 
 \ /
  Last update: 2015-06-05 12:41    [W:0.357 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site