linux_dsm_epyc7002/arch/x86/kernel/cpu
Vince Weaver c48b60538c perf/x86: Use rdpmc() rather than rdmsr() when possible in the kernel
The rdpmc instruction is faster than the equivelant rdmsr call,
so use it when possible in the kernel.

The perfctr kernel patches did this, after extensive testing showed
rdpmc to always be faster (One can look in etc/costs in the perfctr-2.6
package to see a historical list of the overhead).

I have done some tests on a 3.2 kernel, the kernel module I used
was included in the first posting of this patch:

                   rdmsr           rdpmc
 Core2 T9900:      203.9 cycles     30.9 cycles
 AMD fam0fh:        56.2 cycles      9.8 cycles
 Atom 6/28/2:      129.7 cycles     50.6 cycles

The speedup of using rdpmc is large.

[ It's probably possible (and desirable) to do this without
  requiring a new field in the hw_perf_event structure, but
  the fixed events make this tricky. ]

Signed-off-by: Vince Weaver <vweaver1@eecs.utk.edu>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/alpine.DEB.2.00.1203011724030.26934@cl320.eecs.utk.edu
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2012-06-06 17:23:35 +02:00
..
mcheck One more mce cleanup before the 3.5 merge window closes 2012-05-31 10:53:37 -07:00
mtrr x86, mtrr: Fix a type overflow in range_to_mtrr func 2012-05-30 14:37:00 -07:00
.gitignore
amd.c x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it 2012-04-27 16:43:09 +02:00
bugs_64.c
bugs.c
centaur.c
common.c x86: Allow nesting of the debug stack IDT setting 2012-05-31 23:12:21 -04:00
cpu.h
cyrix.c
hypervisor.c
intel_cacheinfo.c x86/cache_info: Fix setup of l2/l3 ids 2012-05-07 15:27:37 +02:00
intel.c
Makefile Add driver auto probing for x86 features v4 2012-01-26 16:44:41 -08:00
match.c x86: Fix typo in MODULE_DEVICE_TABLE example: s/x86_cpu/x86cpu/ 2012-04-16 14:20:19 +02:00
mkcapflags.pl
mshyperv.c
perf_event_amd_ibs.c perf/x86-ibs: Fix usage of IBS op current count 2012-05-09 15:23:17 +02:00
perf_event_amd.c Merge branches 'perf-urgent-for-linus' and 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-23 12:12:49 -07:00
perf_event_intel_ds.c perf/x86: Update SNB PEBS constraints 2012-06-06 16:59:52 +02:00
perf_event_intel_lbr.c perf/x86: Add LBR software filter support for Intel CPUs 2012-03-05 14:55:42 +01:00
perf_event_intel.c perf/x86: Enable/Add IvyBridge hardware support 2012-06-06 16:59:49 +02:00
perf_event_p4.c perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
perf_event_p6.c perf: Adding sysfs group format attribute for pmu device 2012-03-16 14:06:06 -03:00
perf_event.c perf/x86: Use rdpmc() rather than rdmsr() when possible in the kernel 2012-06-06 17:23:35 +02:00
perf_event.h perf/x86: Fix wrmsrl() debug wrapper 2012-06-06 17:23:22 +02:00
perfctr-watchdog.c
powerflags.c
proc.c
rdrand.c
scattered.c X86: Introduce HW-Pstate scattered cpuid feature 2012-01-26 16:49:06 -08:00
sched.c
topology.c
transmeta.c
umc.c
vmware.c