All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>, Tim Deegan <tim@xen.org>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Xen-devel List <xen-devel@lists.xen.org>,
	"Marcos E. Matsunaga" <Marcos.Matsunaga@oracle.com>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [DESIGN] Feature Levelling improvements
Date: Wed, 24 Jun 2015 18:28:57 +0100	[thread overview]
Message-ID: <558AE8D9.50906@citrix.com> (raw)
In-Reply-To: <20150623150918.GA20114@l.oracle.com>

On 23/06/15 16:09, Konrad Rzeszutek Wilk wrote:
>>>>     * Leaf 0x00000007[ECX=0].EAX
>>>> * `mask_l7s0_ebx`
>>> Those 'l' look like '1' in the PDF.
>>>
>>> Can it be called something else?
>> If you can suggest a better name, yes.  As for now, these are the
>> variable names used in-tree (top of xen/arch/x86/cpu/amd.c)
> low?

Low what?  l7s0 means "leaf 7 subleaf 0" which is the most accurate
description of it, given no specific name in either the Intel or AMD
references.

>>
>>>
>>>> VCPU context switch
>>>> -------------------
>>>>
>>>> Xen shall be updated to lazily context switch all available masking
>>>> MSRs.  It
>>>> is noted that this shall incur a performance overhead if restricted
>>>> featuresets are assigned to PV guests, and _CPUID Faulting_ is not
>>>> available.
>>>>
>>>> It shall be the responsibility of the host administrator to avoid creating
>>>> such a scenario, if the performance overhead is a concern.
>>> .. and perhaps add warnings in the toolstack to tell the admin?
>> How and where would this surface?  xl/libxl is not designed to run the
>> system as a whole.
> Not sure. We have some code for silly NUMA configuration that tells the user
> when they are picking the wrong option.

Well yes.  If xl isn't going to block the creation attempt (and it
absolutely shouldn't), this is something better left to some sort of
"host health check".

>>>> Future work
>>>> ===========
>>>>
>>>> The above is a minimum quantity of work to support feature levelling, but
>>>> further problems exist.  They are acknowledged as being issues, but are
>>>> not in
>>>> scope for fixing as part of feature levelling.
>>>>
>>>> * Xen has no notion of per-cpu and per-package data in the cpuid policy.  In
>>>>   particular, this causes issues for VMs attempting to detect topology,
>>>> which
>>>>   find inconsistent/incorrect cache information.
>>>>
>>>> * In the case that `domain_cpuid()` can't locate a leaf in the topology, it
>>>>   will fall back to issuing a plain `CPUID` instruction.  This breaks VM
>>>>   encapsulation, as a VM which has migrated can observe differences which
>>>>   should be hidden.
>>>>
>>>> * There is currently a positioning issue with the domains cpuid policy.
>>>>   Verifying the register state requires the policy, but the policy is behind
>>>>   the register state in the migration stream.  The domains cpuid policy
>>>> should
>>>>   become an item in Xen's migration state for a VM.
>>> And potentially code in libxl to allow subset manipulation to allow
>>> leveling across different platforms. As in the common features would
>>> be exposed while all the other ones are masked? And I suppose some
>>> format to stash this so it can be ingested by the libxl tools?
>> libxl's knowledge of multiple platforms is precisely nothing.  xl knows
>> just enough to ssh and set up some pipes to push a VM through.
>>
>> The domain configuration does have cpuid information in it.  That will
> Does if 'cpuid' configuration is present?

Correct.

~Andrew

      reply	other threads:[~2015-06-24 17:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-16 10:50 [DESIGN] Feature Levelling improvements Andrew Cooper
2015-06-16 15:33 ` Jan Beulich
2015-06-16 16:45   ` Andrew Cooper
2015-06-22 19:18 ` Konrad Rzeszutek Wilk
2015-06-23  9:11   ` Andrew Cooper
2015-06-23 15:09     ` Konrad Rzeszutek Wilk
2015-06-24 17:28       ` Andrew Cooper [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=558AE8D9.50906@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=Marcos.Matsunaga@oracle.com \
    --cc=konrad.wilk@oracle.com \
    --cc=tim@xen.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.