This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [PATCH] Fix hvm cpuid to hide hyperthreaded processor when a

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] Fix hvm cpuid to hide hyperthreaded processor when apic is disabled.
From: "Clyde Griffin" <cgriffin@xxxxxxxxxx>
Date: Wed, 19 Apr 2006 15:31:23 -0400
Delivery-date: Wed, 19 Apr 2006 12:31:59 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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 

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
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] Fix hvm cpuid to hide hyperthreaded processor when apic is disabled., Clyde Griffin <=