]> err.no Git - linux-2.6/commitdiff
[PATCH] re-disable TSC on NUMAQ
authorDave Hansen <haveblue@us.ibm.com>
Fri, 29 Jul 2005 04:16:18 +0000 (21:16 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 29 Jul 2005 04:46:05 +0000 (21:46 -0700)
Somewhere recently, the TSC got re-enabled for timekeeping on NUMAQ
machines.  However, the hardware makes these get unsynchronized quite
badly.  So badly, in fact, that the code to fix up the skew can just hang
on boot.

This patch re-disables them.  It's nicely confined to the numaq.c file.  It
would be great if this could make it into 2.6.13, I think it counts as a
bugfix.

Tested on a 16-proc 4-node NUMAQ.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/numaq.c

index e51edf0a656487c2100ffe293ff1a0cc6c0dd0fd..5f5b075f860a8c97ceddf6fed27f45ef153f4622 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/nodemask.h>
 #include <asm/numaq.h>
 #include <asm/topology.h>
+#include <asm/processor.h>
 
 #define        MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
 
@@ -77,3 +78,11 @@ int __init get_memcfg_numaq(void)
        smp_dump_qct();
        return 1;
 }
+
+static int __init numaq_dsc_disable(void)
+{
+       printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
+       tsc_disable = 1;
+       return 0;
+}
+core_initcall(numaq_dsc_disable);