linux/arch/x86_64/kernel
Andi Kleen 312df5f1a1 [PATCH] x86_64: Add pmtimer support
There are unfortunately more and more multi processor Opteron systems which
don't have HPET timer support in the southbridge.  This covers in particular
Nvidia and VIA chipsets.  They also don't guarantee that the TSCs are
synchronized between CPUs; and especially with MP powernow the systems are
nearly unusable because the time gets very inconsistent between CPUs.

The timer code for x86-64 was originally written under the assumption that we
could fall back to the HPET timer on such systems.  But this doesn't work
there.

Another alternative is to use the ACPI PM timer as primary time source.  This
patch does that.  The kernel only uses PM timer when there is no other choice
because it has some disadvantages.

Ported over from i386.  It should be faster than the i386 version because I
dropped the "read three times" workaround, but is still considerable slower
than HPET and also does not work together with vsyscalls which have to be
disabled.

Cc: <mark.langsdorf@amd.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-17 07:59:15 -07:00
..
acpi Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpufreq Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
aperture.c [PATCH] x86_64: Use the e820 hole to map the IOMMU/AGP aperture 2005-04-16 15:25:13 -07:00
apic.c [PATCH] Fix u32 vs. pm_message_t in x86-64 2005-04-16 15:25:31 -07:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e820.c [PATCH] x86-64: Handle empty E820 regions correctly 2005-05-01 08:58:52 -07:00
early_printk.c [PATCH] make lots of things static 2005-05-01 08:59:29 -07:00
entry.S [PATCH] x86_64: Readd missing tests in entry.S 2005-05-17 07:59:13 -07:00
genapic_cluster.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genapic_flat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genapic.c [PATCH] x86_64 genapic update 2005-04-16 15:24:53 -07:00
head64.c [PATCH] x86_64: saved_command_line overflow fix 2005-05-01 08:58:52 -07:00
head.S [PATCH] x86_64: Dump stack and prevent recursion on early fault 2005-04-16 15:25:00 -07:00
i387.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i8259.c [PATCH] Fix u32 vs. pm_message_t in x86-64 2005-04-16 15:25:31 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io_apic.c [PATCH] x86_64: Remove unique APIC/IO-APIC ID check 2005-05-17 07:59:14 -07:00
ioport.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kprobes.c [PATCH] Kprobes: Incorrect handling of probes on ret/lret instruction 2005-05-05 16:36:39 -07:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
mce_intel.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mce.c [PATCH] x86_64: Remove excessive stack allocation in MCE code with large NR_CPUS 2005-04-16 15:25:10 -07:00
module.c [PATCH] uml: kludgy compilation fixes for x86-64 subarch modules support 2005-05-05 16:36:33 -07:00
mpparse.c [PATCH] x86_64: Remove unique APIC/IO-APIC ID check 2005-05-17 07:59:14 -07:00
msr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nmi.c [PATCH] x86_64: Reduce NMI watchdog stack usage 2005-05-17 07:59:12 -07:00
pci-dma.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-gart.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-nommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmtimer.c [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
process.c [PATCH] i386/x86_64 segment register access update 2005-05-01 08:58:48 -07:00
ptrace.c [AUDIT] Log correct syscall args for i386 processes on x86_64 2005-05-03 14:11:02 +01:00
reboot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup64.c [PATCH] Increase number of e820 entries hard limit from 32 to 128 2005-05-01 08:58:51 -07:00
setup.c [PATCH] x86_64: Don't print the internal k8c+ flag in /proc/cpuinfo 2005-05-17 07:59:14 -07:00
signal.c [PATCH] amd64 rt_sigframe user annotation 2005-04-26 07:43:42 -07:00
smp.c [PATCH] x86_64: Switch SMP bootup over to new CPU hotplug state machine 2005-04-16 15:25:19 -07:00
smpboot.c [PATCH] x86_64: Update TSC sync algorithm 2005-05-17 07:59:14 -07:00
suspend_asm.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
suspend.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys_x86_64.c [PATCH] consolidate sys_shmat 2005-05-01 08:59:12 -07:00
syscall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
time.c [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
trampoline.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.c [PATCH] x86_64: Rewrite exception stack backtracing 2005-04-16 15:25:17 -07:00
vmlinux.lds.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall.c [PATCH] x86_64: Add pmtimer support 2005-05-17 07:59:15 -07:00
x8664_ksyms.c [PATCH] x86_64: make string func definition work as intended 2005-05-05 16:36:33 -07:00