linux/arch/x86/kernel
Peter Zijlstra bd2b5b1284 perf_counter: More aggressive frequency adjustment
Also employ the overflow handler to adjust the frequency, this results
in a stable frequency in about 40~50 samples, instead of that many ticks.

This also means we can start sampling at a sample period of 1 without
running head-first into the throttle.

It relies on sched_clock() to accurately measure the time difference
between the overflow NMIs.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-06-10 16:55:26 +02:00
..
acpi
apic Merge branch 'linus' into perfcounters/core 2009-06-01 10:01:39 +02:00
cpu perf_counter: More aggressive frequency adjustment 2009-06-10 16:55:26 +02:00
.gitignore
alternative.c
amd_iommu_init.c amd-iommu: fix iommu flag masks 2009-05-04 15:05:24 +02:00
amd_iommu.c
aperture_64.c
apm_32.c
asm-offsets_32.c
asm-offsets_64.c
asm-offsets.c
audit_64.c
bios_uv.c
bootflag.c
check.c
cpuid.c
crash_dump_32.c
crash_dump_64.c
crash.c
doublefault_32.c
ds.c
dumpstack_32.c
dumpstack_64.c
dumpstack.c
dumpstack.h
e820.c x86: fix boot hang in early_reserve_e820() 2009-05-07 21:42:39 -07:00
early_printk.c
early-quirks.c
efi_32.c
efi_64.c
efi_stub_32.S
efi_stub_64.S
efi.c
entry_32.S
entry_64.S perf_counter/x86: Remove the IRQ (non-NMI) handling bits 2009-06-03 09:53:34 +02:00
ftrace.c x86/function-graph: fix constraint for recording old return value 2009-05-13 13:52:19 -04:00
geode_32.c
head32.c
head64.c
head_32.S
head_64.S
head.c
hpet.c x86: hpet: fix periodic mode programming on AMD 81xx 2009-04-22 15:53:40 +02:00
i386_ksyms_32.c
i387.c
i8237.c
i8253.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
i8259.c
init_task.c
io_delay.c
ioport.c
irq_32.c
irq_64.c
irq.c Merge branch 'linus' into perfcounters/core 2009-04-29 14:47:05 +02:00
irqinit_32.c perf_counter/x86: Remove the IRQ (non-NMI) handling bits 2009-06-03 09:53:34 +02:00
irqinit_64.c perf_counter/x86: Remove the IRQ (non-NMI) handling bits 2009-06-03 09:53:34 +02:00
k8.c
kdebugfs.c
kgdb.c kgdb,i386: use address that SP register points to in the exception frame 2009-05-15 07:56:25 -05:00
kprobes.c
kvm.c
kvmclock.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
ldt.c
machine_kexec_32.c x86, kexec: fix crashdump panic with CONFIG_KEXEC_JUMP 2009-05-07 22:01:05 -07:00
machine_kexec_64.c x86, kexec: fix crashdump panic with CONFIG_KEXEC_JUMP 2009-05-07 22:01:05 -07:00
Makefile x86: Fix performance regression caused by paravirt_ops on native kernels 2009-05-15 20:07:42 +02:00
mca_32.c
mfgpt_32.c
microcode_amd.c
microcode_core.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-17 09:56:11 -07:00
microcode_intel.c
mmconf-fam10h_64.c
module_32.c
module_64.c
mpparse.c x86: Fix section mismatches in mpparse 2009-04-12 12:32:18 +02:00
msr.c
olpc.c
paravirt_patch_32.c
paravirt_patch_64.c
paravirt-spinlocks.c
paravirt.c x86: Fix performance regression caused by paravirt_ops on native kernels 2009-05-15 20:07:42 +02:00
pci-calgary_64.c
pci-dma.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
pci-gart_64.c
pci-nommu.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
pci-swiotlb.c x86: pci-swiotlb.c swiotlb_dma_ops should be static 2009-04-14 02:51:04 +02:00
pcspeaker.c
pmtimer_64.c
probe_roms_32.c
process_32.c
process_64.c
process.c Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-05 11:04:19 -07:00
ptrace.c tracing/syscalls: use a dedicated file header 2009-04-09 05:43:32 +02:00
pvclock.c
quirks.c x86, hpet: Stop soliciting hpet=force users on ICH4M 2009-04-24 08:41:39 +02:00
reboot_fixups_32.c
reboot.c x86: DMI match for the Sony VGN-Z540N as it needs BIOS reboot 2009-05-22 09:11:30 +02:00
relocate_kernel_32.S
relocate_kernel_64.S
rtc.c
scx200_32.c
setup_percpu.c x86: Remove remap percpu allocator for the time being 2009-05-25 05:37:55 +02:00
setup.c
signal.c perf_counter: unify and fix delayed counter wakeup 2009-04-06 09:30:36 +02:00
smp.c
smpboot.c
stacktrace.c
step.c
sys_i386_32.c
sys_x86_64.c
syscall_64.c
syscall_table_32.S Merge branch 'core/signal' into perfcounters/core 2009-04-30 21:16:49 +02:00
tce_64.c
test_nx.c
test_rodata.c
time_32.c
time_64.c
tlb_uv.c Merge branch 'x86/uv' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-16 16:43:20 -07:00
tls.c
tls.h
topology.c
trampoline_32.S
trampoline_64.S
trampoline.c
traps.c Merge branch 'linus' into perfcounters/core-v2 2009-04-06 09:02:57 +02:00
tsc_sync.c
tsc.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
uv_irq.c
uv_sysfs.c x86: prevent /sys/firmware/sgi_uv from being created on non-uv systems 2009-04-08 14:58:10 +02:00
uv_time.c uv_time: add parameter to uv_read_rtc() 2009-04-22 17:41:25 +02:00
verify_cpu_64.S
visws_quirks.c
vm86_32.c
vmi_32.c
vmiclock_32.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
vmlinux_32.lds.S
vmlinux_64.lds.S
vmlinux.lds.S
vsmp_64.c
vsyscall_64.c
x8664_ksyms_64.c
xsave.c x86-64: fix FPU corruption with signals and preemption 2009-04-20 14:33:00 -07:00