[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 29.06.13 at 05:04, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> wrote:
> 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.
> 
> I see things same as you do, that it'll get hidden fields from vmcs. The
> dilemma here is what to do about the VCPUOP_initialise hcall. I am 
> currently checking to see if the new vcpu can just set the context
> itself first thing, without the VCPUOP_initialise hcall completely.

I don't follow: What's the dilemma here? Why can't you just put
_all_ of the values specified by VCPUOP_initialise into the VMCS?

> Correct, the guest I am dealing with is Linux. And correct again, that
> these are linux focussed. I believe it was someone working on BSD who
> had inquired about PVH, and looking at my patches, and probably would be
> working with us when they are ready.
> 
> These patches are to allow a 64bit Linux PV domU to boot in PVH mode on xen.
> Since no new hypercalls are created, nor are there any major changes to any,
> it doesn't seem to me a huge deal that they are linux focussed right now.
> To me, it's a step in the direction of someday having PVH support for
> all OSs.

As said before - I would consider this sort of acceptable if the
omissions were spelled out clearly (i.e. easily grep-able for and
easily recognizable when reading the code).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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