Messages in this thread Patch in this message | | | Date | Sat, 21 Feb 2009 15:17:41 -0800 | From | Suresh Siddha <> | Subject | Re: PROBLEM: cannot get stable system since 2.6.28 kernel (amd64) |
| |
On Sat, Feb 21, 2009 at 02:21:46AM -0800, Philippe Grenard wrote: > Hello Ingo, thanks for your reply, > > I've tried to boot 2.6.29-rc5 with both "Max CPUID Value" Enabled and > Disabled, and tried for both case the "nofxsr" option without better result...
Philippe, Can you apply the appended patch and pass "noxsave" boot param and see if it helps fix your freeze issue. This should atleast take away the xsave equation from the picture.
I haven't followed this thread closely, but do you have nmi watchdog and other debug options like CONFIG_DETECT_SOFTLOCKUP enabled? That might give more clues about the freeze.
thanks, suresh ---
From: Suresh Siddha <suresh.b.siddha@intel.com> Subject: x86: Introduce noxsave boot parameter
Introduce "noxsave" boot parameter which will disable the cpu's xsave/xrstor capabilities.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> ---
Index: tip/Documentation/kernel-parameters.txt =================================================================== --- tip/Documentation/kernel-parameters.txt.orig +++ tip/Documentation/kernel-parameters.txt @@ -1493,6 +1493,10 @@ and is between 256 and 4096 characters. register save and restore. The kernel will only save legacy floating-point registers on task switch. + noxsave [BUGS=X86] Disables x86 extended register state save + and restore using xsave. The kernel will fallback to + enabling legacy floating-point and sse state. + noclflush [BUGS=X86] Don't use the CLFLUSH instruction nohlt [BUGS=ARM,SH] Index: tip/arch/x86/kernel/cpu/common.c =================================================================== --- tip/arch/x86/kernel/cpu/common.c.orig +++ tip/arch/x86/kernel/cpu/common.c @@ -127,6 +127,13 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_p } }; EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); +static int __init x86_xsave_setup(char *s) +{ + setup_clear_cpu_cap(X86_FEATURE_XSAVE); + return 1; +} +__setup("noxsave", x86_xsave_setup); + #ifdef CONFIG_X86_32 static int cachesize_override __cpuinitdata = -1; static int disable_x86_serial_nr __cpuinitdata = 1;
| |