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

Re: [Xen-devel] [V10 PATCH 09/23] PVH xen: introduce pvh_set_vcpu_info() and vmx_pvh_set_vcpu_info()



At 18:59 -0700 on 23 Jul (1374605957), Mukesh Rathor wrote:
> +/*
> + * Set vmcs fields in support of vcpu_op -> VCPUOP_initialise hcall.  Called
> + * from arch_set_info_guest() which sets the (PVH relevant) non-vmcs fields.
> + *
> + * In case of linux:
> + *     The boot vcpu calls this to set some context for the non boot smp 
> vcpu.
> + *     The call comes from cpu_initialize_context().  (boot vcpu 0 context is
> + *     set by the tools via do_domctl -> vcpu_initialise).
> + *
> + * NOTE: In case of VMCS, loading a selector doesn't cause the hidden fields
> + *       to be automatically loaded. We load selectors here but not the 
> hidden
> + *       parts, except for GS_BASE and FS_BASE. This means we require the
> + *       guest to have same hidden values as the default values loaded in the
> + *       vmcs in pvh_construct_vmcs(), ie, the GDT the vcpu is coming up on
> + *       should be something like following,
> + *       (from 64bit linux, CS:0x10 DS/SS:0x18) :
> + *
> + *           ffff88007f704000:  0000000000000000 00cf9b000000ffff
> + *           ffff88007f704010:  00af9b000000ffff 00cf93000000ffff
> + *           ffff88007f704020:  00cffb000000ffff 00cff3000000ffff

What a bizarre interface!  Why does this operation not load the hidden
parts from the GDT/LDT that the caller supplied?

If this _is_ to be the interface:
  - this comment should be somewhere in the interface headers (and docs)
    so that OS authors can find it; and
  - it should specify the _exact_ constraints that the guest must
    follow in constructing its tables.

Tim.


_______________________________________________
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®.