[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/nested-svm: Update the paging mode on VMRUN and VMEXIT emulation.
# HG changeset patch # User Tim Deegan <tim@xxxxxxx> # Date 1349356850 -3600 # Node ID a9c84069c2489e2c432a5068adc7cf8d51ae3366 # Parent 72d89cc43c72848be9bf49da9a87729ed8f48433 x86/nested-svm: Update the paging mode on VMRUN and VMEXIT emulation. This allows Xen to walk the l1 hypervisor's shadow pagetable correctly. Not needed for hap-on-hap guests because they are handled at lookup time. Problem found with 64bit Win7 and 32bit XPMode where Win7 switches forth and back between long mode and PAE legacy pagetables. Signed-off-by: Christoph Egger <Christoph.Egger@xxxxxxx> [Adjusted to update in all cases where the l1 vmm uses shadows] Signed-off-by: Tim Deegan <tim@xxxxxxx> Committed-by: Tim Deegan <tim@xxxxxxx> --- diff -r 72d89cc43c72 -r a9c84069c248 xen/arch/x86/hvm/svm/nestedsvm.c --- a/xen/arch/x86/hvm/svm/nestedsvm.c Thu Oct 04 09:28:25 2012 +0200 +++ b/xen/arch/x86/hvm/svm/nestedsvm.c Thu Oct 04 14:20:50 2012 +0100 @@ -741,6 +741,10 @@ nsvm_vcpu_vmrun(struct vcpu *v, struct c return 1; } + /* If l1 guest uses shadow paging, update the paging mode. */ + if (!nestedhvm_paging_mode_hap(v)) + paging_update_paging_modes(v); + nv->nv_vmswitch_in_progress = 0; return 0; } @@ -1408,6 +1412,10 @@ nestedsvm_vcpu_vmexit(struct vcpu *v, st */ rc = nhvm_vcpu_vmexit(v, regs, exitcode); + /* If l1 guest uses shadow paging, update the paging mode. */ + if (!nestedhvm_paging_mode_hap(v)) + paging_update_paging_modes(v); + nv->nv_vmswitch_in_progress = 0; if (rc) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |