|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |