kernel_optimize_test/include/asm-x86_64
Venkatesh Pallipadi 991528d734 ACPI: Processor native C-states using MWAIT
Intel processors starting with the Core Duo support
support processor native C-state using the MWAIT instruction.
Refer: Intel Architecture Software Developer's Manual
http://www.intel.com/design/Pentium4/manuals/253668.htm

Platform firmware exports the support for Native C-state to OS using
ACPI _PDC and _CST methods.
Refer: Intel Processor Vendor-Specific ACPI: Interface Specification
http://www.intel.com/technology/iapc/acpi/downloads/302223.htm

With Processor Native C-state, we use 'MWAIT' instruction on the processor
to enter different C-states (C1, C2, C3).  We won't use the special IO
ports to enter C-state and no SMM mode etc required to enter C-state.
Overall this will mean better C-state support.

One major advantage of using MWAIT for all C-states is, with this and
"treat interrupt as break event" feature of MWAIT, we can now get accurate
timing for the time spent in C1, C2, ..  states.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2006-10-14 00:35:39 -04:00
..
8253pit.h
a.out.h [PATCH] x86_64: TASK_SIZE fixes for compatibility mode processes 2005-06-21 18:46:12 -07:00
acpi.h [PATCH] Remove some cruft in apic id checking during processor setup 2006-09-26 10:52:37 +02:00
agp.h [PATCH] AGP fix for Xen VMM 2005-06-07 12:35:43 -07:00
alternative-asm.i Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
alternative.h [PATCH] x86_64: Remove alternative_smp 2006-08-30 16:05:15 -07:00
apic.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
apicdef.h x86_64: Remove stale lapic definition from apicdef.h 2006-04-01 22:50:03 -05:00
atomic.h [PATCH] x86_64: x86_64 version of the smp alternative patch. 2006-06-26 10:48:14 -07:00
auxvec.h [PATCH] auxiliary vector cleanups 2005-09-07 16:57:21 -07:00
bitops.h [PATCH] optimize hweight64 for x86_64 2006-09-26 10:52:38 +02:00
boot.h
bootsetup.h [PATCH] Increase number of e820 entries hard limit from 32 to 128 2005-05-01 08:58:51 -07:00
bug.h [PATCH] x86-64: reduce x86-64 bug frame by 4 bytes 2005-09-12 10:50:58 -07:00
bugs.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
byteorder.h
cache.h fix file specification in comments 2006-10-03 23:01:26 +02:00
cacheflush.h [PATCH] x86/x86_64: mark rodata section read-only: x86-64 support 2006-01-06 08:33:36 -08:00
calgary.h [PATCH] x86: remove config.h includes from asm-i386 & asm-x86_64 2006-09-26 10:52:36 +02:00
calling.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
checksum.h [NET]: Fix ipl=>ihl typo in ip_fast_csum 2005-08-29 16:02:48 -07:00
compat.h [PATCH] amd64: task_pt_regs() 2006-01-12 09:08:51 -08:00
cpu.h
cpufeature.h [PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs 2006-06-26 10:48:22 -07:00
cputime.h
current.h kbuild: alpha,x86_64 use generic asm-offsets.h support 2005-09-09 21:28:48 +02:00
debugreg.h
delay.h
desc.h [PATCH] x86_64: Align and pad x86_64 GDT on page boundary 2006-01-11 19:04:53 -08:00
div64.h
dma-mapping.h [PATCH] Move valid_dma_direction() from x86_64 to generic code 2006-09-29 09:18:10 -07:00
dma.h [PATCH] x86_64: Remove long obsolete CVS 2006-06-26 10:48:16 -07:00
dmi.h [PATCH] x86_64: Implement early DMI scanning 2006-03-25 09:10:55 -08:00
dwarf2.h [PATCH] i386/x86-64: Work around gcc bug with noreturn functions in unwinder 2006-09-26 10:52:41 +02:00
e820.h [PATCH] Have x86_64 use add_active_range() and free_area_init_nodes 2006-09-27 08:26:11 -07:00
edac.h [PATCH] EDAC: core EDAC support code 2006-01-18 19:20:31 -08:00
elf.h [PATCH] Fix 'make headers_check' on x86_64 2006-09-16 12:54:32 -07:00
emergency-restart.h [PATCH] x86_64: Implemenent machine_emergency_restart 2005-07-26 14:35:42 -07:00
errno.h
fcntl.h [PATCH] Clean up struct flock definitions 2005-09-07 16:57:38 -07:00
fixmap.h [PATCH] Remove all ifdefs for local/io apic 2006-09-26 10:52:29 +02:00
floppy.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
fpu32.h
futex.h [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
genapic.h [PATCH] x86_64 irq: Allocate a vector across all cpus for genapic_flat. 2006-10-08 12:24:02 -07:00
hardirq.h [PATCH] genirq: irq: generalize the check for HARDIRQ_BITS 2006-10-04 07:55:28 -07:00
hpet.h [PATCH] x86_64: Rename oem_force_hpet_timer to apic_is_clustered_box 2006-06-26 10:48:19 -07:00
hw_irq.h [PATCH] i386/x86_64: Remove global IO_APIC_VECTOR 2006-10-08 12:24:02 -07:00
hypertransport.h [PATCH] Initial generic hypertransport interrupt support 2006-10-04 07:55:29 -07:00
i387.h [PATCH] Add __must_check to copy_*_user 2006-09-26 10:52:39 +02:00
ia32_unistd.h [PATCH] x86_64: Remove most of ia32_unistd.h 2006-06-26 10:48:15 -07:00
ia32.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ide.h
idle.h [PATCH] x86_64: Add idle notifiers 2006-01-11 19:04:55 -08:00
intel_arch_perfmon.h [PATCH] x86: i386/x86-64 Add nmi watchdog support for new Intel CPUs 2006-09-26 10:52:27 +02:00
io_apic.h [PATCH] genirq: x86_64 irq: Kill irq compression 2006-10-04 07:55:29 -07:00
io.h [PATCH] Consolidate check_signature 2006-10-11 11:14:23 -07:00
ioctl.h [PATCH] Generic ioctl.h 2006-01-10 08:01:34 -08:00
ioctls.h
ipcbuf.h
ipi.h [PATCH] x86_64: Remove useless KDB vector 2006-01-11 19:05:00 -08:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
irq.h [PATCH] genirq: x86_64 irq: make vector_irq per cpu 2006-10-04 07:55:29 -07:00
irqflags.h [PATCH] lockdep: irqtrace cleanup of include/asm-x86_64/irqflags.h 2006-07-03 15:27:03 -07:00
k8.h [PATCH] x86_64: Clean and enhance up K8 northbridge access code 2006-06-26 10:48:15 -07:00
Kbuild [PATCH] Split i386 and x86_64 ptrace.h 2006-09-26 08:49:10 -07:00
kdebug.h [PATCH] lockdep: beautify x86_64 stacktraces 2006-07-03 15:27:02 -07:00
kexec.h [PATCH] Avoid overwriting the current pgd (V4, x86_64) 2006-09-26 10:52:38 +02:00
kmap_types.h
kprobes.h [PATCH] IA64: kprobe invalidate icache of jump buffer 2006-07-31 13:28:38 -07:00
ldt.h
linkage.h [PATCH] Add proper alignment to ENTRY 2006-09-26 10:52:29 +02:00
local.h [PATCH] x86_64: Fix race in cpu_local_* on preemptible kernels 2006-06-26 10:48:21 -07:00
mach_apic.h [PATCH] x86_64 irq: Allocate a vector across all cpus for genapic_flat. 2006-10-08 12:24:02 -07:00
mc146818rtc.h
mce.h [PATCH] x86: Refactor thermal throttle processing 2006-09-26 10:52:42 +02:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmsegment.h
mmu_context.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
mmu.h
mmzone.h [PATCH] Delete unused definitions of kvaddr_to_nid 2006-06-23 07:42:52 -07:00
module.h
mpspec.h [PATCH] Replace mp bus array with bitmap for bus not pci 2006-09-26 10:52:30 +02:00
msgbuf.h
msidef.h [PATCH] genirq: x86_64 irq: Move msi message composition into io_apic.c 2006-10-04 07:55:28 -07:00
msr.h [PATCH] Add macros for rdtscp 2006-09-26 10:52:28 +02:00
mtrr.h Move inclusion of <linux/compat.h> out of user scope in asm-x86_64/mtrr.h 2006-05-21 22:51:13 +01:00
mutex.h [PATCH] Don't use lock section for mutexes and semaphores 2006-09-26 10:52:32 +02:00
namei.h
nmi.h [PATCH] x86: Clean up x86 NMI sysctls 2006-09-30 01:47:55 +02:00
node.h
numa.h [PATCH] Unify pxm_to_node() and node_to_pxm() 2006-06-23 07:42:48 -07:00
page.h [PATCH] x86_64: Enlarge debug stack for nested kprobes 2006-07-28 19:28:00 -07:00
param.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
parport.h
pci-direct.h [PATCH] x86: Allow disabling early pci scans with pci=noearly or disallowing conf1 2006-09-26 10:52:41 +02:00
pci.h [PATCH] x86_64: Calgary IOMMU - Calgary specific bits 2006-06-26 10:48:19 -07:00
pda.h [PATCH] Fix idle notifiers 2006-09-26 10:52:40 +02:00
percpu.h [PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch 2006-10-06 08:53:41 -07:00
pgalloc.h [PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks 2006-03-25 09:10:53 -08:00
pgtable.h Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-09-26 13:07:55 -07:00
poll.h [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
posix_types.h
prctl.h
processor.h ACPI: Processor native C-states using MWAIT 2006-10-14 00:35:39 -04:00
proto.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
ptrace-abi.h [PATCH] Split i386 and x86_64 ptrace.h 2006-09-26 08:49:10 -07:00
ptrace.h [PATCH] Add regs_return_value() helper 2006-10-02 07:57:16 -07:00
resource.h
rtc.h
rwlock.h [PATCH] Clean up spin/rwlocks 2006-09-26 10:52:32 +02:00
scatterlist.h
seccomp.h
sections.h
segment.h [PATCH] Add the vgetcpu vsyscall 2006-09-26 10:52:28 +02:00
semaphore.h [PATCH] Use early clobber in semaphores 2006-09-30 01:47:55 +02:00
sembuf.h
serial.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
setup.h
shmbuf.h
shmparam.h
sigcontext32.h
sigcontext.h
siginfo.h [PATCH] consolidate SIGEV_PAD_SIZE 2005-05-01 08:59:08 -07:00
signal.h [PATCH] Add TIF_RESTORE_SIGMASK 2006-09-26 10:52:26 +02:00
smp.h Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-09-26 13:07:55 -07:00
socket.h [AF_UNIX]: Datagram getpeersec 2006-06-29 16:58:06 -07:00
sockios.h
sparsemem.h [PATCH] add x86-64 specific support for sparsemem 2005-06-23 09:45:07 -07:00
spinlock_types.h [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
spinlock.h [PATCH] Directed yield: cpu_relax variants for spinlocks and rw-locks 2006-10-01 00:39:21 -07:00
stacktrace.h [PATCH] Merge stacktrace and show_trace 2006-09-26 10:52:34 +02:00
stat.h
statfs.h
string.h [PATCH] x86_64: Use __always_inline for __inline_memcpy 2006-06-26 10:48:14 -07:00
suspend.h [PATCH] x86_64: eliminate set_debug() 2006-03-25 09:10:52 -08:00
swiotlb.h [PATCH] x86_64: Fix swiotlb=force 2006-07-29 20:59:55 -07:00
system.h [PATCH] Don't leak NT bit into next task 2006-09-26 10:52:41 +02:00
tce.h [PATCH] Calgary IOMMU: consolidate per bus data structures 2006-09-26 10:52:31 +02:00
termbits.h
termios.h
therm_throt.h [PATCH] x86: Refactor thermal throttle processing 2006-09-26 10:52:42 +02:00
thread_info.h [PATCH] x86-64 TIF flags for debug regs and io bitmap in ctxsw 2006-09-26 10:52:28 +02:00
timex.h [PATCH] x86_64: fix sync before RDTSC on Intel cpus 2006-04-11 06:38:57 -07:00
tlb.h
tlbflush.h [PATCH] Clean up and minor fixes to TLB flush 2006-09-26 10:52:29 +02:00
topology.h [PATCH] sched: introduce child field in sched_domain 2006-10-03 08:04:06 -07:00
types.h [PATCH] sab: consolidate kmem_bufctl_t 2005-09-05 00:05:48 -07:00
uaccess.h [PATCH] Add proper sparse __user casts to __copy_to_user_inatomic 2006-09-30 01:47:55 +02:00
ucontext.h
unaligned.h
unistd.h [PATCH] rename the provided execve functions to kernel_execve 2006-10-02 07:57:23 -07:00
unwind.h [PATCH] Fix unwinder warning in traps.c 2006-09-26 10:52:42 +02:00
user32.h
user.h
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
vsyscall32.h
vsyscall.h [PATCH] kill wall_jiffies 2006-10-01 00:39:27 -07:00
xor.h