Re: PROBLEM: cannot get stable system since 2.6.28 kernel (amd64)
From: Suresh Siddha
Date: Sat Feb 21 2009 - 18:17:52 EST
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@xxxxxxxxx>
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@xxxxxxxxx>
---
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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/