android_kernel_samsung_msm8976/include/asm-ia64
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
..
sn [IA64] Update Altix BTE error return status patch 2008-01-03 13:18:58 -08:00
a.out.h
acpi-ext.h
acpi.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
agp.h
asmmacro.h [IA64] remove per-cpu ia64_phys_stacked_size_p8 2007-02-06 15:04:18 -08:00
atomic.h [IA64] Use atomic64_read to read an atomic64_t. 2007-08-13 10:21:04 -07:00
auxvec.h
bitops.h IA64: Slim down __clear_bit_unlock 2007-12-18 16:22:46 -08:00
break.h [IA64] enable trap code on slot 1 2006-12-12 12:00:55 -08:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
checksum.h [PATCH] fix prototype of csum_ipv6_magic() (ia64) 2007-01-23 11:09:49 -08:00
compat.h Introduce compat_u64 and compat_s64 types 2007-07-16 09:05:48 -07:00
cpu.h
cputime.h
current.h
cyclone.h
delay.h
device.h ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
div64.h
dma-mapping.h IA64: sg chaining support 2007-10-16 11:27:26 +02:00
dma.h [IA64] swiotlb bug fixes 2007-02-05 18:46:40 -08:00
dmi.h
elf.h increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
emergency-restart.h
errno.h
esi.h [IA64] remove bogus prototype ia64_esi_init() 2007-02-05 14:14:29 -08:00
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h
fpswa.h
fpu.h
futex.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
gcc_intrin.h remove __attribute_used__ 2008-01-28 23:21:18 +01:00
hardirq.h
hpsim.h [IA64] Cleanup HPSIM code (was: Re: Enable early console for Ski simulator) 2007-09-01 02:52:25 -07:00
hw_irq.h [IA64] Two trivial spelling fixes 2007-12-18 17:02:21 -08:00
ia32.h [IA64] rename partial_page 2007-07-25 12:56:39 -07:00
ia64regs.h
ide.h ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT 2007-10-20 00:32:32 +02:00
intel_intrin.h IA64: Slim down __clear_bit_unlock 2007-12-18 16:22:46 -08:00
intrinsics.h
io.h Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
ioctl.h
ioctls.h [IA64] arbitary speed tty ioctl support 2007-07-13 16:04:12 -07:00
iosapic.h [IA64] iosapic cleanup 2007-12-07 16:11:12 -08:00
ipcbuf.h
irq.h take declarations of enable_irq() et.al. to linux/interrupt.h 2007-07-22 11:44:00 -07:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
Kbuild [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
kdebug.h x86: optimize page faults like all other achitectures and kill notifier cruft 2007-10-16 09:42:50 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h
kprobes.h kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kregs.h [IA64] relax per-cpu TLB requirement to DTC 2007-02-06 15:04:48 -08:00
libata-portmap.h ATA convert GSI to irq on ia64 2007-02-15 18:04:53 -05:00
linkage.h
local.h local_t: ia64 extension 2007-05-08 11:15:20 -07:00
machvec.h [IA64] SN2 needs platform specific irq_to_vector() function. 2007-08-13 10:31:26 -07:00
machvec_dig.h
machvec_hpsim.h
machvec_hpzx1.h
machvec_hpzx1_swiotlb.h
machvec_init.h [IA64] SN2 needs platform specific irq_to_vector() function. 2007-08-13 10:31:26 -07:00
machvec_sn2.h [IA64] SN2 needs platform specific irq_to_vector() function. 2007-08-13 10:31:26 -07:00
mc146818rtc.h
mca.h [IA64] Fix kernel panic in kdump on INIT 2007-10-12 15:24:06 -07:00
mca_asm.h [IA64] Make gp value point to Region 5 in mca handler 2006-09-26 14:13:03 -07:00
meminit.h Use extended crashkernel command line on ia64 2007-10-19 11:53:50 -07:00
mman.h [PATCH] IA64,sparc: local DoS with corrupted ELFs 2006-09-08 08:40:46 -07:00
mmu.h
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmzone.h
module.h [PATCH] Move compiler check for modules to ia64 only 2006-09-26 10:52:37 +02:00
msgbuf.h
mutex.h
namei.h
nodedata.h [PATCH] pgdat allocation and update for ia64 of memory hotplug: update pgdat address array 2006-06-27 17:32:37 -07:00
numa.h Add vmcoreinfo 2007-10-17 08:42:54 -07:00
page.h Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated 2007-07-17 10:22:59 -07:00
pal.h [IA64] Update printing of feature set bits 2007-11-09 13:05:30 -08:00
param.h
parport.h
patch.h [IA64] remove per-cpu ia64_phys_stacked_size_p8 2007-02-06 15:04:18 -08:00
pci.h [IA64] Un-break ia64 build 2007-07-12 16:04:39 -07:00
percpu.h [IA64] fix typo in per_cpu_offset 2007-10-29 11:21:45 -07:00
perfmon.h
perfmon_default_smpl.h
pgalloc.h [IA64] Quicklist support for IA64 2007-05-11 09:40:00 -07:00
pgtable.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h [PATCH] FD_ZERO build fix 2007-01-11 18:18:22 -08:00
processor.h [IA64] rename partial_page 2007-07-25 12:56:39 -07:00
ptrace.h [PATCH] Add regs_return_value() helper 2006-10-02 07:57:16 -07:00
ptrace_offsets.h
resource.h [IA64] Remove stack hard limit on ia64 2007-03-06 14:48:19 -08:00
rse.h
rwsem.h [IA64] Prevent people from directly including <asm/rwsem.h>. 2007-07-20 11:27:11 -07:00
sal.h [IA64] abstract SAL_CALL wrapper to allow other firmware entry points 2007-10-12 15:11:22 -07:00
scatterlist.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
sections.h [IA64] remove per-cpu ia64_phys_stacked_size_p8 2007-02-06 15:04:18 -08:00
segment.h
semaphore.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
sembuf.h
serial.h
setup.h [PATCH] ia64: 2048-byte command line 2007-02-12 09:48:39 -08:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h [PATCH] irq-flags: IA64: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
smp.h [IA64] /proc/cpuinfo "physical id" field cleanups 2007-10-29 11:14:54 -07:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h
spinlock.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
spinlock_types.h
stat.h
statfs.h
string.h
suspend.h
system.h increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
termbits.h [IA64] arbitary speed tty ioctl support 2007-07-13 16:04:12 -07:00
termios.h [IA64] arbitary speed tty ioctl support 2007-07-13 16:04:12 -07:00
thread_info.h remove unused TIF_NOTIFY_RESUME flag 2007-07-31 15:39:38 -07:00
timex.h
tlb.h
tlbflush.h [IA64] make flush_tlb_kernel_range() an inline function 2007-12-19 12:30:30 -08:00
topology.h Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
types.h
uaccess.h [IA64] don't double >> PAGE_SHIFT pointer for /dev/kmem access 2006-10-26 14:57:06 -07:00
ucontext.h
unaligned.h
uncached.h
unistd.h [IA64] fallocate system call 2007-07-19 13:48:00 -07:00
unwind.h [IA64] Remove sparse warning from unwind code 2007-03-08 10:28:48 -08:00
user.h
ustack.h arch: personality independent stack top 2007-07-19 10:04:45 -07:00
vga.h
xor.h