[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 18/18] PVH xen: introduce vmx_pvh.c
On Fri, 28 Jun 2013 10:44:08 +0100 "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > >>> On 28.06.13 at 04:28, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> > >>> wrote: > > On Tue, 25 Jun 2013 11:49:57 +0100 "Jan Beulich" > > <JBeulich@xxxxxxxx> wrote: > >> > +int vmx_pvh_set_vcpu_info(struct vcpu *v, struct > >> > vcpu_guest_context *ctxtp) +{ > >> > + if ( v->vcpu_id == 0 ) > >> > + return 0; > >> > + > >> > + vmx_vmcs_enter(v); > >> > + __vmwrite(GUEST_GDTR_BASE, ctxtp->gdt.pvh.addr); > >> > + __vmwrite(GUEST_GDTR_LIMIT, ctxtp->gdt.pvh.limit); > >> > + __vmwrite(GUEST_GS_BASE, ctxtp->gs_base_user); > >> > + > >> > + __vmwrite(GUEST_CS_SELECTOR, ctxtp->user_regs.cs); > >> > + __vmwrite(GUEST_DS_SELECTOR, ctxtp->user_regs.ds); > >> > + __vmwrite(GUEST_ES_SELECTOR, ctxtp->user_regs.es); > >> > + __vmwrite(GUEST_SS_SELECTOR, ctxtp->user_regs.ss); > >> > + __vmwrite(GUEST_GS_SELECTOR, ctxtp->user_regs.gs); > >> > >> How does this work without also writing the "hidden" register > >> fields? > > > > This is for bringing up SMP CPUs by the guest, which already has > > set GDT up so it just needs selectors to be loaded to start the > > target vcpu. > > That makes no sense to me: Once you VMLAUNCH that vCPU, it'll > get the hidden register fields loaded from the VMCS, without > accessing the GDT. If that understanding of mine is wrong, please > explain how you see things working in more detail. Re-reading this I realize I misunderstood your question. Sorry. The hidden fields are set to the default values in vmcs create. That call comes from the tool stack during domain creation via the do_domctl ---> vcpu_initialise hcall. That happens during guest creation. Here, the guest is booting and bringing up secondary CPU, and wants to set certain fields via the do_vcpu_op() -> VCPUOP_initialise hcall. Hope that clarifies. Thanks Mukesh _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |