linux-2.4.20-pre5_cyclone-timer_B0
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
@@ -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
@@ -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
@@ -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
@@ -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,