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

Re: [Xen-devel] CPUID improvements (phase 2) Design Doc



On 09/11/16 08:31, Jan Beulich wrote:
>>>> On 08.11.16 at 19:36, <andrew.cooper3@xxxxxxxxxx> wrote:
>> On 08/11/16 16:32, Jan Beulich wrote:
>>>>>> On 08.11.16 at 16:35, <andrew.cooper3@xxxxxxxxxx> wrote:
>>>> Please find inline the design doc for further CPUID improvements, planned 
>>>> for
>>>> development during the 4.9 timeframe.
>>> Looks good, just a couple of minor remarks.
>>>
>>>> ## Changes in hypercall behaviour
>>>>
>>>> During domain construction, some pieces of information critical to the
>>>> determination of the domains maximum acceptable CPUID policy are available
>>>> right from the very start (Most notably, the HVM and HAP flags from the
>>>> `XEN_DOMCTL_createdomain`).
>>>>
>>>> However, some other parameters are not available at convenient points.
>>>>
>>>> 1.  The disable flag from `XEN_DOMCTL_disable_migrate` is used to set
>>>>     `d->disable_migrate`, whose only purpose is to avoid the unconditional
>>>>     clobbering of the Invariant TSC flag.  This flag cannot even be 
>>>> queried by
>>>>     the toolstack once set.
>>>>
>>>>     There are other facilities which should be restricted based on whether 
>>>> a
>>>>     VM might migrate or not.  (e.g. The use of LBR, whose record format is
>>>>     hardware specific.)
>>> Not really - the LBR format only limits the set of hosts the VM can
>>> migrate to. I.e. this is just like a CPUID flag which needs to be set
>>> on the target host in order for the VM to be permitted to migrate
>>> there.
>> It is more complicated than that.  The LBR format also depends on
>> whether TSX is enabled or not, which on Haswell-WS CPUs depends on
>> whether hyperthreading is enabled.
> Yes, but is this relevant? It's still only a value (identifying the format)
> which needs to match between source and destination hosts. I.e. not
> different from individual feature bits, just that here we're dealing with
> a multi-bit entity.

LBR format is controlled by IA32_PERF_CAPABILITIES[5:0], which I will
eventually get to covering with MSR levelling, with this being a
strictly non-levelable field.

Users' expectations when migrating a VM is that it should be able to go
anywhere.  In practice, this is only insofar as we can maintain
compatibility.  We should default to being as compatible as possible; if
a user asks for both migrateable and LBR, then thats fine as it comes
with an understanding of reduced mobility.

~Andrew

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

 


Rackspace

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