linux/arch/x86_64/kernel
Andi Kleen 0c3749c41f [PATCH] x86_64: Calibrate APIC timer using PM timer
On some broken motherboards (at least one NForce3 based AMD64 laptop)
the PIT timer runs at a incorrect frequency.  This patch adds a new
option "apicpmtimer" that allows to use the APIC timer and calibrate it
using the PMTimer.  It requires the earlier patch that allows to run the
main timer from the APIC.

Specifying apicpmtimer implies apicmaintimer.

The option defaults to off for now.

I tested it on a few systems and the resulting APIC timer frequencies
were usually a bit off, but always <1%, which should be tolerable.

TBD figure out heuristic to enable this automatically on the affected
systems TBD perhaps do it on all NForce3s or using DMI?

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-04 16:43:15 -08:00
..
acpi [ACPI] Avoid BIOS inflicted crashes by evaluating _PDC only once 2005-12-01 01:30:35 -05:00
cpufreq Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
aperture.c [PATCH] x86_64: Fix off by one in IOMMU check 2006-01-11 19:04:54 -08:00
apic.c [PATCH] x86_64: Calibrate APIC timer using PM timer 2006-02-04 16:43:15 -08:00
asm-offsets.c [PATCH] x86_64: Allow nesting of int3 by default for kprobes 2006-01-16 11:27:58 -08:00
crash_dump.c [PATCH] kdump: read previous kernel's memory 2006-01-10 08:01:28 -08:00
crash.c [PATCH] kdump: x86_64 save cpu registers upon crash 2006-01-10 08:01:28 -08:00
e820.c [PATCH] kdump: x86_64: add memmmap command line option 2006-01-10 08:01:27 -08:00
early_printk.c [PATCH] i386/x86-64: make setup_early_printk() usage consistent 2006-01-11 19:05:04 -08:00
entry.S [PATCH] x86_64: Disallow kprobes on NMI handlers 2006-02-04 16:43:12 -08:00
genapic_cluster.c [PATCH] x86_64/i386: Remove preempt disable calls in lowlevel IPI 2006-01-11 19:01:57 -08:00
genapic_flat.c [PATCH] x86_64/i386: Remove preempt disable calls in lowlevel IPI 2006-01-11 19:01:57 -08:00
genapic.c [PATCH] x86-64: Use physflat on Intel for < 8 CPUs with CPU hotplug 2005-09-12 10:50:56 -07:00
head64.c [PATCH] i386/x86-64: make setup_early_printk() usage consistent 2006-01-11 19:05:04 -08:00
head.S [PATCH] x86_64: eliminate empty_bad_{page,{pte,pmd}_table} 2006-01-16 23:18:35 -08:00
i387.c [PATCH] amd64: task_thread_info() 2006-01-12 09:08:51 -08:00
i8259.c [PATCH] amd64: task_thread_info() 2006-01-12 09:08:51 -08:00
init_task.c [PATCH] Change maxaligned_in_smp alignemnt macros to internodealigned_in_smp macros 2006-01-08 20:13:38 -08:00
io_apic.c [PATCH] x86_64: Automatically enable apicmaintimer on ATI boards 2006-02-04 16:43:13 -08:00
ioport.c [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
irq.c [PATCH] x86_64: Node local pda take 2 -- cpu_pda preparation 2006-01-11 19:04:59 -08:00
kprobes.c [PATCH] kprobes: fix race in recovery of reentrant probe 2006-01-11 18:42:12 -08:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
machine_kexec.c [PATCH] x86_64 machine_kexec: Use standard pagetable helpers 2005-07-29 13:12:49 -07:00
Makefile [PATCH] x86_64: Inclusion of ScaleMP vSMP architecture patches - vsmp_arch 2006-01-11 19:05:01 -08:00
mce_amd.c [PATCH] x86_64: Sparse warnings fix. 2006-01-11 19:05:00 -08:00
mce_intel.c [PATCH] x86_64: Some housekeeping in local APIC code 2006-01-11 19:05:03 -08:00
mce.c [PATCH] x86_64: data/functions wrongly marked as __init with cpu hotplug. 2006-02-04 16:43:14 -08:00
module.c [PATCH] uml: kludgy compilation fixes for x86-64 subarch modules support 2005-05-05 16:36:33 -07:00
mpparse.c [ACPI] acpi_register_gsi() fix needed for ACPICA 20051021 2005-12-28 02:50:44 -05:00
nmi.c [PATCH] x86_64: Disallow kprobes on NMI handlers 2006-02-04 16:43:12 -08:00
pci-dma.c [PATCH] x86_64: Fix swiotlb dma_alloc_coherent fallback 2006-02-04 16:43:13 -08:00
pci-gart.c [PATCH] x86_64: When allocation of merged SG lists fails in the IOMMU don't merge 2006-02-04 16:43:14 -08:00
pci-nommu.c [PATCH] x86_64: Tell user to enable GART_IOMMU when needed 2006-01-11 19:04:59 -08:00
pci-swiotlb.c [PATCH] x86_64: Use function pointers to call DMA mapping functions 2006-01-11 19:04:55 -08:00
pmtimer.c [PATCH] x86_64: Calibrate APIC timer using PM timer 2006-02-04 16:43:15 -08:00
process.c [PATCH] x86_64: Don't allow kprobes on __switch_to 2006-02-04 16:43:14 -08:00
ptrace.c [PATCH] amd64: task_pt_regs() 2006-01-12 09:08:51 -08:00
reboot.c [PATCH] i386/x86-64: Don't IPI to offline cpus on shutdown 2006-01-11 19:04:50 -08:00
relocate_kernel.S [PATCH] kexec: x86_64 kexec implementation 2005-06-25 16:24:50 -07:00
setup64.c [PATCH] x86_64: Fix MCE exception stack for boot CPU 2006-01-18 19:20:16 -08:00
setup.c [PATCH] x86_64: Undo the earlier changes to remove unrolled copy/memset functions 2006-02-04 16:43:13 -08:00
signal.c [PATCH] x86_64: Save/restore CS in 64bit signal handlers and force __USER_CS for CS 2005-11-14 19:55:15 -08:00
smp.c [PATCH] x86_64: Remove useless KDB vector 2006-01-11 19:05:00 -08:00
smpboot.c [PATCH] x86_64: Fix the node cpumask of a cpu going down 2006-02-04 16:43:13 -08:00
suspend_asm.S [PATCH] x86_64: Set up safe page tables during resume 2005-10-10 08:36:46 -07:00
suspend.c [PATCH] x86_64: Align and pad x86_64 GDT on page boundary 2006-01-11 19:04:53 -08:00
sys_x86_64.c [PATCH] x86_64: Use common sys_time64 2005-11-14 19:55:17 -08:00
syscall.c [PATCH] x86/x86_64: mark rodata section read-only: make some datastructures const 2006-01-06 08:33:36 -08:00
time.c [PATCH] x86_64: mark two routines as __cpuinit 2006-02-04 16:43:14 -08:00
trampoline.S [PATCH] x86_64: Fix SMP bootup with CONFIG_KDUMP enabled 2006-01-11 19:09:58 -08:00
traps.c [PATCH] x86_64: Disallow kprobes on NMI handlers 2006-02-04 16:43:12 -08:00
vmlinux.lds.S [PATCH] x86_64: align per-cpu section to configured cache bytes 2006-02-04 16:43:14 -08:00
vsmp.c [PATCH] x86_64: Inclusion of ScaleMP vSMP architecture patches - vsmp_arch 2006-01-11 19:05:01 -08:00
vsyscall.c [PATCH] x86_64: Use standard __always_inline in vsyscall.c 2006-01-11 19:04:58 -08:00
x8664_ksyms.c [PATCH] x86_64: No need to export get_cmos_time anymore 2006-01-11 19:05:02 -08:00