diff options
author | David Vrabel <david.vrabel@citrix.com> | 2011-07-16 09:05:45 +0100 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2011-07-16 09:05:45 +0100 |
commit | 508424df0926c4709c14b17c1d40f103f5a43546 (patch) | |
tree | acbca12109c6459bf14599c76908df3fb5cb5f95 /tools/libxc/xc_cpuid_x86.c | |
parent | 2e8644e1d90b08330bc72661f11600ba9ef980e4 (diff) | |
download | xen-508424df0926c4709c14b17c1d40f103f5a43546.tar.gz xen-508424df0926c4709c14b17c1d40f103f5a43546.tar.bz2 xen-508424df0926c4709c14b17c1d40f103f5a43546.zip |
xen/libxc: set CPUID topology leaf as unsupported for PV guests
The result of a CPUID Extended Topology Enumeration leaf for PV guests
is invalid as the level in ECX is ignored. This can cause some guests
to loop endlessly when trying to enumerate the topology.
Since the physical topology isn't useful to PV guests set the topology
leaf as unsupported.
Guests affected include Linux kernels prior 2.6.32 where a workaround
was applied ("xen: mask extended topology info in cpu",
82d6469916c6fcfa345636a49004c9d1753905d1).
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'tools/libxc/xc_cpuid_x86.c')
-rw-r--r-- | tools/libxc/xc_cpuid_x86.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index d95baf5403..2b3602001d 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -518,6 +518,7 @@ static void xc_cpuid_pv_policy( case 5: /* MONITOR/MWAIT */ case 0xa: /* Architectural Performance Monitor Features */ + case 0x0000000b: /* Extended Topology Enumeration */ case 0x8000000a: /* SVM revision and features */ case 0x8000001b: /* Instruction Based Sampling */ case 0x8000001c: /* Light Weight Profiling */ |