Re: [Xen-devel] [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy

From: Boris Ostrovsky
Date: Mon Feb 08 2016 - 11:31:58 EST




On 02/08/2016 11:26 AM, Andrew Cooper wrote:
On 08/02/16 16:12, Boris Ostrovsky wrote:

On 02/08/2016 11:05 AM, Andrew Cooper wrote:
For compatibility with other virtualisation specs, Xen's cpuid leaves
shift depending on configuration.

Spec at
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/arch-x86/cpuid.h;h=d709340f18d089560b959835eabb7b6609542c7e;hb=HEAD#l33


Basically, they are either at 0x40000000, or 0x40000100 if viridian or
vmware compatibility has been enabled.
(Also in arch/x86/include/asm/xen/cpuid.h in Linux tree).
The other complication is that, for a PV guest, you must use the forced
emulation prefix for the cpuid instruction to trap into the hypervisor.

This either means you must be sure you are under Xen to start with, or
use an extable entry to catch the #UD fault if you are not under Xen.

I think we are OK for PV because this code will be executed after pvops are set and so we will be calling xen_cpuid().

-boris