Skip to contentSkip to conversation

bt_ioremap question / cyclone-timer_A1 patch

RFC New john stultz 1 participant 1 message Jul 9, 2002 Documentation

lore
Share & tools
lore
#0 lore raw

RFC 1/1 bt_ioremap question / cyclone-timer_A1 patch

Hey all,
I've been working on improving performance of do_gettimeofday on
certain NUMA hardware (see my earlier tsc-disable posts for why the TSCs cannot be used), and I wanted to run this by the list to make sure I'm not doing anything too daft.

Mainly I'm concerned about my usage of bt_ioremap. Early in the boot processes, I need to map in a couple of chipset registers and poke values into them. However one of the registers needs to be kept mapped for the life of the system (look for "cyclone_timer" below). I couldn't find any documentation on whether memory mapped with bt_ioremap can be held across mem_init(). It seems to "just work" but I wanted to find out if I really should be re-mapping the register w/ ioremap once it becomes available.

If you see any other issues with the patch, please let me know (I do realize its a bit #ifdef happy, so go easy on that point).

Comments, suggestions and flames welcome

thanks
-john

PS: If you are so inclined/loony to actually try this patch, please note that it depends on my tsc-disable_B2 patch to apply cleanly.

Documentation/Configure.help +5 -0
diff -Nru a/Documentation/Configure.help b/Documentation/Configure.help
@@ -257,6 +257,11 @@
   You will need a new lynxer.elf file to flash your firmware with - send
   email to [email protected]
 
+IBM Enterprise X-Architecture support
+CONFIG_X86_IBMEXA
+  This option makes use of a performance counter on the Cyclone chipset 
+  for calculating do_gettimeofday, greatly improving its performance. 
+
 IO-APIC support on uniprocessors
 CONFIG_X86_UP_IOAPIC
   An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
arch/i386/config.in +1 -0
diff -Nru a/arch/i386/config.in b/arch/i386/config.in
@@ -201,6 +201,7 @@
 	bool 'Multi-node NUMA system support (Caution: Read help first)' CONFIG_X86_NUMA
 	if [ "$CONFIG_X86_NUMA" = "y" ]; then
 		bool 'Multiquad (IBM/Sequent) NUMAQ support' CONFIG_MULTIQUAD
+		bool 'IBM Enterprise X-Architecture support' CONFIG_X86_IBMEXA
 	fi
 fi
 
arch/i386/kernel/time.c +94 -0

118 lines not on this page · raw message