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

[Xen-changelog] [xen-4.0-testing] x86: clear CPUID output of leaf 0xd for Dom0 when xsave is disabled



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1305896191 -3600
# Node ID c6034ee9b46eaba42cc2dfe8d068cab4b4342c09
# Parent  187be422e57f9958c45a3a1edcca5f201d0ccec3
x86: clear CPUID output of leaf 0xd for Dom0 when xsave is disabled

Linux starting with 2.6.36 uses the XSAVEOPT instruction and has
certain code paths that look only at the feature bit reported through
CPUID leaf 0xd sub-leaf 1 (i.e. without qualifying the check with one
evaluating leaf 4 output). Consequently the hypervisor ought to mimic
actual hardware in clearing leaf 0xd output when not supporting xsave.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
xen-unstable changeset:   23353:a768a10d32b4
xen-unstable date:        Fri May 20 08:54:45 2011 +0100

Make this unconditional for 4.0 (no pv xsave support) and fix for domU
guests as well (this was already okay in 4.1 and later).

Signed-off-by: Keir Fraser <keir@xxxxxxx>
---


diff -r 187be422e57f -r c6034ee9b46e tools/libxc/xc_cpuid_x86.c
--- a/tools/libxc/xc_cpuid_x86.c        Fri May 20 13:51:44 2011 +0100
+++ b/tools/libxc/xc_cpuid_x86.c        Fri May 20 13:56:31 2011 +0100
@@ -345,6 +345,7 @@
         clear_bit(X86_FEATURE_NODEID_MSR, regs[2]);
         clear_bit(X86_FEATURE_TOPOEXT, regs[2]);
         break;
+    case 0xd: /* XSAVE */
     case 5: /* MONITOR/MWAIT */
     case 0xa: /* Architectural Performance Monitor Features */
     case 0x8000000a: /* SVM revision and features */
diff -r 187be422e57f -r c6034ee9b46e xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Fri May 20 13:51:44 2011 +0100
+++ b/xen/arch/x86/traps.c      Fri May 20 13:56:31 2011 +0100
@@ -817,6 +817,7 @@
         __clear_bit(X86_FEATURE_NODEID_MSR % 32, &c);
         __clear_bit(X86_FEATURE_TOPOEXT % 32, &c);
         break;
+    case 0xd: /* XSAVE */
     case 5: /* MONITOR/MWAIT */
     case 0xa: /* Architectural Performance Monitor Features */
     case 0x8000000a: /* SVM revision and features */

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


 


Rackspace

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