android_kernel_xiaomi_sm8350/arch/x86/kernel/cpu
Stephane Eranian b690081d4d perf_events: Add event constraints support for Intel processors
On some Intel processors, not all events can be measured in all
counters. Some events can only be measured in one particular
counter, for instance. Assigning an event to the wrong counter does
not crash the machine but this yields bogus counts, i.e., silent
error.

This patch changes the event to counter assignment logic to take
into account event constraints for Intel P6, Core and Nehalem
processors. There is no contraints on Intel Atom. There are
constraints on Intel Yonah (Core Duo) but they are not provided in
this patch given that this processor is not yet supported by
perf_events.

As a result of the constraints, it is possible for some event
groups to never actually be loaded onto the PMU if they contain two
events which can only be measured on a single counter. That
situation can be detected with the scaling information extracted
with read().

Signed-off-by: Stephane Eranian <eranian@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1254840129-6198-3-git-send-email-eranian@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-10-09 15:56:12 +02:00
..
cpufreq Merge branch 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-20 15:54:37 -07:00
mcheck x86: mce: Use safer ways to access MCE registers 2009-09-23 18:08:26 +02:00
mtrr x86, mtrr: Convert loop to a while based construct, avoid naked semicolon 2009-09-20 20:12:21 +02:00
.gitignore
addon_cpuid_features.c
amd.c trivial: fix missing printk space in amd_k7_smp_check 2009-09-21 15:14:56 +02:00
bugs_64.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
bugs.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
centaur.c
cmpxchg.c
common.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
cpu_debug.c percpu: cleanup percpu array definitions 2009-06-24 15:13:45 +09:00
cpu.h
cyrix.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
hypervisor.c x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
intel_cacheinfo.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
intel.c x86: Move APERF/MPERF into a X86_FEATURE 2009-09-15 16:51:25 +02:00
Makefile perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
mkcapflags.pl
perf_event.c perf_events: Add event constraints support for Intel processors 2009-10-09 15:56:12 +02:00
perfctr-watchdog.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
powerflags.c
proc.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
sched.c sched: x86: Name old_perf in a unique way 2009-09-16 11:21:07 +02:00
transmeta.c
umc.c
vmware.c x86: Print the hypervisor returned tsc_khz during boot 2009-09-20 20:25:36 +02:00