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

[Xen-devel] [PATCH] Fix hvm cpuid to hide hyperthreaded processor when apic is disabled.



2 Issues:
Issue 1)  There are instances where we DO NOT want an hvm guest to run an MP 
enabled kernel.  In such situations we should have a workaround to guarantee 
hvm guests will not detect MP.

For example, in the absence of ACPI and MPS the installation code in some linux 
distributions key off the presence of cpuid edx/HTT bit (indicating the 
presence of Hyper-Threading Technology) to determine if another logical 
processor is present and if so load an MP enabled kernel instead of a 
uniprocessor kernel.  SMBIOS is also looked at for the same purpose and 
presents a potential problem as well.  While both approaches for selecting an 
MP kernel are debatable (since using MPS or ACPI have long been the standard 
for MP detection), these approaches are something we have to live and work 
around with because making a change in the fully virtualized guest is not an 
option.

To solve the problem we need to hide all secondary processors from the hvm 
guest.  Since the hvm does not surface MPS tables, we only need to deal with 
ACPI, cpuid HTT, and possibly SMBIOS.   (I did not have time right now to look 
closely at the hvm BIOS to know if SMBIOS is also going to be a problem.)

To avoid any confusion within the hvm guest about MP availability, I propose 
that we use "acpi=0" and "apic=0" as the Xen way of indicating to the guest 
that it should not make any attempt to run an MP enabled kernel.  "acpi=0" will 
hide the MADT table and "apic=0" will hide the APIC and HTT cpuid feature bits 
from the guest.

I ran this proposed change by Intel (Wilfred) and AMD (Elsie) and unless 
someone comes up with other reasons why we should not hide HTT when apic=0, 
they are okay with this change.   

Issue 2) Also fixed a logic problem the code path where apic=0 was not being 
handled correctly (vmx path only). Compare with the svm counterpart.

Please also add to 3.0.2.

Signed-  off-  by:  Clyde Griffin <cgriffin@xxxxxxxxxx>

Attachment: xen-hvm-cpuid-ht.diff
Description: Binary data

_______________________________________________
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®.