Bug 529857
Summary: | Booting Windows 2008 R2 64-bit domU results in BSOD (STOP 0x000007E) | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Flavio Leitner <fleitner> |
Component: | kernel-xen | Assignee: | Xen Maintainance List <xen-maint> |
Status: | CLOSED DUPLICATE | QA Contact: | Red Hat Kernel QE team <kernel-qe> |
Severity: | high | Docs Contact: | |
Priority: | urgent | ||
Version: | 5.4 | CC: | clalance, james.brown, pbonzini, raud, tao, xen-maint |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2009-10-23 10:28:59 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Flavio Leitner
2009-10-20 13:40:23 UTC
0xC0000096 is a privileged instruction exception, so there is some hope of fixing the issue. Can you get a crash dump of the system after it gets the BSOD? Testing the hypervisor should not be necessary, I was informed that the bug indeed affects only the 32-bit PAE kernel. There is a kbase for Windows Server 2008 R2-based about this: http://support.microsoft.com/kb/974598 -- Copy&Paste below for completeness: -- Assume that you enable the Hyper-V role on a computer that is running Windows Server 2008 R2. You restart the computer after you enable the Hyper-V role. However, you receive the following Stop error message during the restart operation: Stop 0x0000007E (ffffffffc0000096, parameter2, parameter3, parameter4) SYSTEM_THREAD_EXCEPTION_NOT_HANDLED Notes: * The parameters in these Stop error messages may vary, depending on the actual configuration. * The symptoms of a Stop error may vary, depending on your computer's system failure options. For example, the computer may restart when a Stop error occurs. Cause: This problem occurs because the system uses a C-state that is supported by the processor. However, the C-state is not supported by Hyper-V. Resolution: To resolve this problem, follow these steps: 1. Disable Processor Virtualization in the BIOS. 2. Start the computer normally. 3. Apply this hotfix and then restart the computer. Status: Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. Workaround: Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756 (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows To work around this problem, follow these steps: 1. Disable Processor Virtualization in the BIOS. 2. Start the computer normally. 3. Open an elevated command prompt, and then run the following command: reg add HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /t REG_DWORD /d 0x0007E066 4. Restart the computer. This workaround adds a registry entry that disables the C2 state and the C3 state. Event posted on 10-22-2009 04:46am EDT by kentf Here we go: The XSAVE/XRESTOR feature is not supported in this Xen. The BIOS in some of these boxes is exposing the feature, and not on others - it appears that all of the boxes with 5430 parts have it, and some of the 5410s. This patch fixes HVM and PV, I think - it successfully boots Win 2008 Server R2 on a host that did not work before: diff -Naur xen/arch/x86/hvm/hvm.c xen.new/arch/x86/hvm/hvm.c --- xen/arch/x86/hvm/hvm.c 2009-10-22 01:08:55.000000000 -0700 +++ xen.new/arch/x86/hvm/hvm.c 2009-10-22 01:12:57.000000000 -0700 @@ -675,6 +675,7 @@ struct vcpu *v = current; clear_bit(X86_FEATURE_MWAIT & 31, ecx); + clear_bit(X86_FEATURE_XSAVE & 31, ecx); if ( vlapic_hw_disabled(vcpu_vlapic(v)) ) clear_bit(X86_FEATURE_APIC & 31, edx); diff -Naur xen/arch/x86/hvm/vmx/vmx.c xen.new/arch/x86/hvm/vmx/vmx.c --- xen/arch/x86/hvm/vmx/vmx.c 2009-10-22 01:08:55.000000000 -0700 +++ xen.new/arch/x86/hvm/vmx/vmx.c 2009-10-22 01:16:48.000000000 -0700 @@ -1249,6 +1249,8 @@ */ boot_cpu_data.x86_capability[4] = cpuid_ecx(1); + clear_bit(X86_FEATURE_XSAVE, &boot_cpu_data.x86_capability); + if ( !test_bit(X86_FEATURE_VMXE, &boot_cpu_data.x86_capability) ) return 0; diff -Naur xen/arch/x86/traps.c xen.new/arch/x86/traps.c --- xen/arch/x86/traps.c 2009-10-22 01:08:55.000000000 -0700 +++ xen.new/arch/x86/traps.c 2009-10-22 01:14:52.000000000 -0700 @@ -615,6 +615,7 @@ clear_bit(X86_FEATURE_SEP, &d); if ( !IS_PRIV(current->domain) ) clear_bit(X86_FEATURE_MTRR, &d); + clear_bit(X86_FEATURE_XSAVE % 32, &c); } else if ( regs->eax == 0x80000001 ) { diff -Naur xen/include/asm-x86/cpufeature.h xen.new/include/asm-x86/cpufeature.h --- xen/include/asm-x86/cpufeature.h 2007-12-06 09:48:39.000000000 -0800 +++ xen.new/include/asm-x86/cpufeature.h 2009-10-21 23:24:14.000000000 -0700 @@ -82,6 +82,7 @@ #define X86_FEATURE_CID (4*32+10) /* Context ID */ #define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ #define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ +#define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRESTOR feature set */ /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ #define X86_FEATURE_XSTORE (5*32+ 2) /* on-CPU RNG present (xstore insn) */ This event sent from IssueTracker by jabrown issue 354327 We've just put a similar patch into RHEL-5.5 kernel, that should also fix the issue. Would it be possible to try out the kernel here: http://people.redhat.com/dzickus/el5/170.el5/ Or at least try out the patch entitled "xen-mask-out-xsave-for-hvm-guest"? Thanks, Chris Lalancette |