From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
jbeulich@suse.com, keir@xen.org
Cc: roger.pau@citrix.com, david.vrabel@citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH] x86/hvm: Provide list of emulated features in HVM CPUID leaf
Date: Wed, 3 Feb 2016 00:17:55 +0000 [thread overview]
Message-ID: <56B14733.4010905@citrix.com> (raw)
In-Reply-To: <56B13C0E.5070905@oracle.com>
On 02/02/2016 23:30, Boris Ostrovsky wrote:
> On 02/02/2016 06:22 PM, Andrew Cooper wrote:
>> On 02/02/2016 23:17, Boris Ostrovsky wrote:
>>> Hypervisor may choose which features to emulate for HVMlite guests.
>>> Guest will query the HVM CPUID leaf to find out what is available.
>>>
>>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>> Roger also submitted a patch to do this. However, it is not
>> appropriate, so was dropped.
>>
>> An HVMLite domain should assume there are no emulated devices. The very
>> old legacy devices will never be implemented, and any others we care
>> about possibly implementing in the future have APCI-based ways of
>> indicating support.
>
> OK, so I wasn't the first one to come up with this ;-)
>
> I think for now I mostly care about APIC and for that I can use HW
> CPUID bit (which I believe is cleared for HVMlite guests).
The APIC bit in cpuid is magic and specified as a fast forward of the
APICBASE_MSR enable bit.
Therefore, the correct architectural behaviour is for this bit to be
clear if the local APIC is disabled, or indeed not implemented.
With my maintainers hat on, I will reject any attempt to introduce
non-architectural behaviour; at the moment I am dealing with the
stupidity that is the PV XSAVE interface, where broken bugfix piled on
top of broken bugfix has resulted in a situation where many Linux PV
guests crash if provided with architecturally correct behaviour of the
OSXSAVE cpuid bit (yet another magic one).
> The trouble is that I need to present Linux as having APIC (boot code
> doesn't feel good if !cpu_has_apic) so I'll need to keep no-APIC
> emulation private to Xen-related code. Which is doable.
I see two choices.
1) Require that Linux DMLite guests require a Local APIC, and we allow
that to be a configured option. Exposing APIC definitely makes sense
longer term, because APICV hardware acceleration outperforms the
hypercall-based method.
2) Find a way of telling the Linux boot path "trust me - here is an APIC
driver - dont go looking under the hood". Possibly by registering a
cpuid pvop which re-inserts the APIC bit, although this is liable to
cause the boot code to then inspect the APICBASE_MSR, which will cause
it to blow up slightly later on.
~Andrew
next prev parent reply other threads:[~2016-02-03 0:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-02 23:17 [PATCH] x86/hvm: Provide list of emulated features in HVM CPUID leaf Boris Ostrovsky
2016-02-02 23:22 ` Andrew Cooper
2016-02-02 23:30 ` Boris Ostrovsky
2016-02-03 0:17 ` Andrew Cooper [this message]
2016-02-03 8:43 ` Roger Pau Monné
2016-02-03 14:30 ` Boris Ostrovsky
2016-02-03 14:37 ` Andrew Cooper
2016-02-03 14:46 ` Boris Ostrovsky
2016-02-03 15:05 ` Roger Pau Monné
2016-02-03 15:27 ` Boris Ostrovsky
2016-02-03 3:51 ` Tian, Kevin
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=56B14733.4010905@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=jbeulich@suse.com \
--cc=keir@xen.org \
--cc=roger.pau@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.