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

Re: [Xen-devel] Re: Manual differ from source code about Unrestricted Guest



On Wed, 2011-06-08 at 06:01 +0100, confucius wrote:
> Thank you, Ian and Tim.
> But I am still blurry about Ian's explain, as follow:
> "AIUI although the guest is in unpaged mode the _host_ is not and 
> therefore a pagetable is required from somewhere."

Please bear in mind that I'm not an expert in this area. I might be
talking rubbish...
 
> I konw the host is set to paging and protected mode, so the host(VMM) need a
> page table itself.But identity map table is pointed by GUEST_CR3, not by
> HOST_CR3.

GUEST_CR3 is the CR3 which the processor actually runs on when in guest
(non-root) mode. However this is not necessarily the same as what the
guest sees when it reads its CR3 register -- that read can be emulated
(see hvm_mov_from_cr) when the guest visible and GUEST_CR3 state do not
match. See vmx_update_guest_cr() where we enable/disable
CPU_BASED_CR3_{LOAD,STORE}_EXITING (i.e. emulated cr3 accesses) as
required by the guest current mode.

Similarly for other CRx, i.e. GUEST_CR0 will (on the older VMX
processors as Tim points out) contain CR0.PG=1 while what the guest
reads from cr0 when it believes it isn't in paged mode will be CR0.PG=0.

Ian.

>  The follow is:
>  xen-4.0/arch/x86/hvm/vmx/vmx.c 
> 
> static void vmx_update_guest_cr(...)
> {
> ....
> switch ( cr )
>     { 
>  case 0: ....
>  case 2: ....
>  case 3: 
>     if ( paging_mode_hap(v->domain) )
>         {
>             if ( !hvm_paging_enabled(v) )
>                 v->arch.hvm_vcpu.hw_cr[3] =
>                     v->domain->arch.hvm_domain.params[HVM_PARAM_IDENT_PT];
>             vmx_load_pdptrs(v);
>         }
>  
>         __vmwrite(GUEST_CR3, v->arch.hvm_vcpu.hw_cr[3]);
>         hvm_asid_flush_vcpu(v);
>         break;
> 
> }
> 
> }
> 
> >From such codes, I found GUEST_CR3 not HOST_CR3 point to the identity map
> table with unpaged mode,
> so I am confused by Ian's explain.
> 
> 
> --
> View this message in context: 
> http://xen.1045712.n5.nabble.com/Manual-differ-from-source-code-about-Unrestricted-Guest-tp4462113p4466268.html
> Sent from the Xen - Dev mailing list archive at Nabble.com.
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.