Skip to contentSkip to conversation

linux-2.4.20-pre5_cyclone-timer_B0

RFC PATCH New john stultz 1 participant 1 message Aug 29, 2002 Documentation

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 linux-2.4.20-pre5_cyclone-timer_B0

Just another resync w/ pre5. This patch allows users to pass "cyclone" as a boot to force all CPUs to use a global on-chipset performance counter for their gettimeofday calculations. This greatly improves performance over using the PIT for gettimeofday. You'll also probably want James Cleverdon's summit patch for this to be very useful.

Still on the TODO list:
o Borrow James' auto-detection code
o Cyclone based udelay

Let me know if you have any comments.

thanks
-john

Documentation/Configure.help +8 -0
diff -Nru a/Documentation/Configure.help b/Documentation/Configure.help
@@ -252,6 +252,14 @@
   You will need a new lynxer.elf file to flash your firmware with - send
   email to [email protected]
 
+IBM x440 Summit support
+CONFIG_X86_SUMMIT_NUMA
+  This option enables support for the IBM x440 and related multi-CEC 
+  systems based on the Summit chipset. This options allows you to pass
+  "cyclone" as a boot option to make use of a performance counter on 
+  the Cyclone chipset for calculating do_gettimeofday, greatly 
+  improving performance when compared to the PIT based method. 
+
 IO-APIC support on uniprocessors
 CONFIG_X86_UP_IOAPIC
   An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
arch/i386/config.in +10 -4
diff -Nru a/arch/i386/config.in b/arch/i386/config.in
@@ -216,12 +216,18 @@
       define_bool CONFIG_X86_IO_APIC y
    fi
 else
-   bool 'Multiquad NUMA system' CONFIG_MULTIQUAD
+   bool 'Multi-node NUMA system support' CONFIG_X86_NUMA
+   if [ "$CONFIG_X86_NUMA" = "y" ]; then
+      bool '  Multiquad (IBM/Sequent) NUMAQ support' CONFIG_MULTIQUAD
+      bool '  IBM x440 Summit support' CONFIG_X86_SUMMIT_NUMA
+   fi
 fi
 
-bool 'Unsynced TSC support' CONFIG_X86_TSC_DISABLE
-if [ "$CONFIG_X86_TSC_DISABLE" != "y" -a "$CONFIG_X86_HAS_TSC" = "y" ]; then
-   define_bool CONFIG_X86_TSC y
+if [ "$CONFIG_X86_NUMA" != "y" ]; then
+   bool 'Unsynced TSC support' CONFIG_X86_TSC_DISABLE
+   if [ "$CONFIG_X86_TSC_DISABLE" != "y" -a "$CONFIG_X86_HAS_TSC" = "y" ]; then
+      define_bool CONFIG_X86_TSC y
+   fi
 fi
 
 if [ "$CONFIG_SMP" = "y" -a "$CONFIG_X86_CMPXCHG" = "y" ]; then
arch/i386/kernel/setup.c +1 -1
diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
@@ -1174,7 +1174,7 @@
 
 
 #ifndef CONFIG_X86_TSC
-static int tsc_disable __initdata = 0;
+int tsc_disable __initdata = 0;
 
 static int __init notsc_setup(char *str)
 {
arch/i386/kernel/time.c +143 -4

171 lines not on this page · raw message

include/asm-i386/fixmap.h +3 -0
diff -Nru a/include/asm-i386/fixmap.h b/include/asm-i386/fixmap.h
@@ -64,6 +64,9 @@
 #ifndef CONFIG_X86_F00F_WORKS_OK
 	FIX_F00F,
 #endif
+#ifdef CONFIG_X86_SUMMIT_NUMA
+	FIX_CYCLONE_TIMER, /*cyclone timer register*/
+#endif 
 #ifdef CONFIG_HIGHMEM
 	FIX_KMAP_BEGIN,	/* reserved pte's for temporary kernel mappings */
 	FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,