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

RE: [Xen-devel] Re: [RFC] Hypercalls from HVM guests



> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Keir Fraser
> Sent: 12 April 2006 18:06
> To: Stephen C. Tweedie
> Cc: sofsthun@xxxxxxxxxxxxxxx; xen-devel@xxxxxxxxxxxxxxxxxxx; 
> Andi Kleen
> Subject: Re: [Xen-devel] Re: [RFC] Hypercalls from HVM guests
> 
> 
> On 12 Apr 2006, at 16:39, Stephen C. Tweedie wrote:
> 
> >
> >> CPUID never faults. Well, unless the processor doesn't support the 
> >> instruction, but you find that out from EFLAGS.
> >
> > What does vmx_vmexit_do_cpuid() do then?  I doubt there are many 
> > VMX-capable CPUs without cpuid().  :-)
> 
> Yes, you can make cpuid trap to the hypervisor if running an 
> hvm guest. 
> But that's quite different from a guest-visible trap or fault.

Not only is is POSSIBLE to intercept (note that INTERCEPT and FAULT are
two different things, as Keir explained), but it's necessary to
correctly emulate certain environmental things... For example, if we
have a 32-bit Hypervisor running on a Athlon64 processor, we don't want
the CPUID instruction return support for 64-bit mode - although it's
correct that the PROCESSOR supports 64-bit mode, the Hypervisor wouldn't
really be able to cope with this mode - so having a Linux install say
"Are you sure you want to install a 32-bit OS on this 64-bit processor"
(or worse, automatically select the "better" 64-bit option on it's own),
wouldn't really be what we want... 

Similarly, PAE-support in the hypervisor should be present, or we
shouldn't allow the guest to see that the processor supports PAE. 

Multiprocessor identification in CPUID would be another case where we
want to lie about what's really there and what the guest sees. 

But as for the SVM implementation (I haven't looked at the VMX version
lately), there's no injection of exceptions in the
svm_vmexit_do_cpuid(), and the CPUID instruction itself is not one that
CAN FAULT, unless we're talking about ancient CPU's. 

--
Mats
> 
>   -- Keir
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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