linux-stable/arch/x86
Andi Kleen ca74a6f84e x86: optimize lock prefix switching to run less frequently
On VMs implemented using JITs that cache translated code changing the lock
prefixes is a quite costly operation that forces the JIT to throw away and
retranslate a lot of code.

Previously a SMP kernel would rewrite the locks once for each CPU which
is quite unnecessary. This patch changes the code to never switch at boot in
 the normal case (SMP kernel booting with >1 CPU) or only once for SMP kernel
on UP.

This makes a significant difference in boot up performance on AMD SimNow!
Also I expect it to be a little faster on native systems too because a smp
switch does a lot of text_poke()s which each synchronize the pipeline.

v1->v2: Rename max_cpus
v1->v2: Fix off by one in UP check (Thomas Gleixner)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:33:17 +01:00
..
boot x86 setup: correct the base in the GDT_ENTRY() macro 2008-01-30 13:33:04 +01:00
configs x86: Set CFQ as default in 32-bit defconfig 2008-01-30 13:32:49 +01:00
crypto [CRYPTO] twofish: Merge common glue code 2008-01-14 17:07:57 +11:00
ia32 x86: coding style fixes in arch/x86/ia32/audit.c 2008-01-30 13:32:54 +01:00
kernel x86: optimize lock prefix switching to run less frequently 2008-01-30 13:33:17 +01:00
lguest x86: change write_gdt_entry signature. 2008-01-30 13:31:13 +01:00
lib x86: add ENDPROC() markers 2008-01-30 13:33:13 +01:00
mach-default spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-es7000 i386: es7000 minor cleanups 2007-10-17 20:16:15 +02:00
mach-generic spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-visws x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-voyager x86: avoid name conflict for Voyager leave_mm 2008-01-30 13:32:55 +01:00
math-emu x86: arch/x86/math-emu/errors.c: fix printk warnings 2008-01-30 13:32:13 +01:00
mm x86: replace hard coded reservations in 64-bit early boot code with dynamic table 2008-01-30 13:33:17 +01:00
oprofile x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
pci x86: serverworks: IRQ routing needs no _p 2008-01-30 13:33:14 +01:00
power x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
vdso x86: gitignore arch/x86/vdso files 2008-01-30 13:32:32 +01:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen x86: adjust/fix LDT handling for Xen 2008-01-30 13:33:14 +01:00
Kconfig percpu: use a kconfig variable to signal arch specific percpu setup 2008-01-30 13:32:51 +01:00
Kconfig.cpu x86: reduce CONFIG_X86_PPRO_FENCE bloat 2008-01-30 13:32:31 +01:00
Kconfig.debug x86: make early printk selectable on 64-bit as well 2008-01-30 13:33:06 +01:00
Makefile x86: document fdimage/isoimage completely in make help 2008-01-30 13:32:49 +01:00
Makefile_32.cpu x86: move i386 and x86_64 Makefiles to arch/x86 2007-10-25 22:27:34 +02:00