Message ID | 1310571145-28930-2-git-send-email-joerg.roedel@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/13/2011 06:32 PM, Joerg Roedel wrote: > From: Joerg Roedel<joro@8bytes.org> > > This patch introduces a new pointer which always points to > the VMCB used for running the L1 guest. > > Signed-off-by: Joerg Roedel<joro@8bytes.org> > --- > arch/x86/kvm/svm.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c > index 475d1c9..3d5990f 100644 > --- a/arch/x86/kvm/svm.c > +++ b/arch/x86/kvm/svm.c > @@ -113,7 +113,9 @@ static u32 msrpm_offsets[MSRPM_OFFSETS] __read_mostly; > struct vcpu_svm { > struct kvm_vcpu vcpu; > struct vmcb *vmcb; > + struct vmcb *host_vmcb; > unsigned long vmcb_pa; > + unsigned long host_vmcb_pa; Why not call it vmcb01, like nvmx? host_vmcb is ambiguous.
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 475d1c9..3d5990f 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -113,7 +113,9 @@ static u32 msrpm_offsets[MSRPM_OFFSETS] __read_mostly; struct vcpu_svm { struct kvm_vcpu vcpu; struct vmcb *vmcb; + struct vmcb *host_vmcb; unsigned long vmcb_pa; + unsigned long host_vmcb_pa; struct svm_cpu_data *svm_data; uint64_t asid_generation; uint64_t sysenter_esp; @@ -1171,9 +1173,11 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id) svm->nested.msrpm = page_address(nested_msrpm_pages); svm_vcpu_init_msrpm(svm->nested.msrpm); - svm->vmcb = page_address(page); + svm->host_vmcb = page_address(page); + svm->vmcb = svm->host_vmcb; clear_page(svm->vmcb); svm->vmcb_pa = page_to_pfn(page) << PAGE_SHIFT; + svm->host_vmcb_pa = page_to_pfn(page) << PAGE_SHIFT; svm->asid_generation = 0; init_vmcb(svm); kvm_write_tsc(&svm->vcpu, 0);