linux-kernel-test/arch/x86
Venki Pallipadi bde6f5f59c x86: voluntary leave_mm before entering ACPI C3
Aviod TLB flush IPIs during C3 states by voluntary leave_mm()
before entering C3.

The performance impact of TLB flush on C3 should not be significant with
respect to C3 wakeup latency. Also, CPUs tend to flush TLB in hardware while in
C3 anyways.

On a 8 logical CPU system, running make -j2, the number of tlbflush IPIs goes
down from 40 per second to ~ 0. Total number of interrupts during the run
of this workload was ~1200 per second, which makes it ~3% savings in wakeups.

There was no measurable performance or power impact however.

[ akpm@linux-foundation.org: symbol export fixes. ]

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:32:01 +01:00
..
boot x86: tweak io_64.h for paravirt. 2008-01-30 13:31:10 +01:00
configs x86: 64-bit, make sparsemem vmemmap the only memory model 2008-01-30 13:30:47 +01:00
crypto [CRYPTO] twofish: Merge common glue code 2008-01-14 17:07:57 +11:00
ia32 x86: x86 ia32_binfmt removal 2008-01-30 13:31:56 +01:00
kernel x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
lguest x86: change write_gdt_entry signature. 2008-01-30 13:31:13 +01:00
lib x86: disable preemption in delay_tsc() 2007-11-14 18:45:44 -08: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: remove all definitions with fastcall 2008-01-30 13:31:17 +01:00
math-emu x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
mm arch/x86/: spelling fixes 2008-01-30 13:31:42 +01:00
oprofile x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
pci x86: add some pirq debugging 2008-01-30 13:32:00 +01:00
power x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
vdso x86: compat_binfmt_elf 2008-01-30 13:31:55 +01:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen x86: remove all definitions with fastcall 2008-01-30 13:31:17 +01:00
Kconfig x86: compat_binfmt_elf 2008-01-30 13:31:55 +01:00
Kconfig.cpu x86: use def_bool where possible in Kconfig.cpu 2008-01-30 13:31:03 +01:00
Kconfig.debug x86: make io_delay=0xed the default 2008-01-30 13:30:05 +01:00
Makefile x86: correctly set UTS_MACHINE for "make ARCH=x86" 2007-11-26 17:38:53 -08:00
Makefile_32 x86 vDSO: i386 vdso32 install 2008-01-30 13:30:42 +01:00
Makefile_32.cpu x86: move i386 and x86_64 Makefiles to arch/x86 2007-10-25 22:27:34 +02:00
Makefile_64 x86 vDSO: ia32 vsyscall removal 2008-01-30 13:30:44 +01:00