OpenCloudOS-Kernel/arch
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
..
alpha alpha: Fix duplicate <asm/thread_info.h> include 2009-09-27 14:46:05 -07:00
arm make Linux bootable on ARM again 2009-09-26 10:06:53 -07:00
avr32 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next 2009-09-23 15:37:02 -07:00
blackfin blackfin: Cleanup linker script using new linker script macros. 2009-09-24 17:16:22 -07:00
cris Merge branch 'for-linus' of git://repo.or.cz/cris-mirror 2009-09-24 17:08:56 -07:00
frv FRV: Flash mappings for the MB93090-MB00 motherboard 2009-09-24 17:18:38 -07:00
h8300 h8300: Cleanup linker script using new linker script macros. 2009-09-24 17:16:22 -07:00
ia64 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
m32r Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev 2009-09-24 17:25:09 -07:00
m68k headers: utsname.h redux 2009-09-23 18:13:10 -07:00
m68knommu headers: utsname.h redux 2009-09-23 18:13:10 -07:00
microblaze Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
mips mips: fix build of vmlinux.lds 2009-09-25 19:49:27 +02:00
mn10300 mn10300: Clean up linker script using higher-level macros. 2009-09-24 17:16:22 -07:00
parisc parisc: Remove useless altinstructions code copied from x86. 2009-09-24 17:16:21 -07:00
powerpc const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
s390 sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
score Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next 2009-09-23 15:37:02 -07:00
sh sh: Add support DMA Engine to SH7780 2009-09-25 12:19:33 +09:00
sparc perf_event: Provide vmalloc() based mmap() backing 2009-10-06 14:21:50 +02:00
um um: Clean up linker script using standard macros. 2009-09-24 17:16:22 -07:00
x86 perf_events: Add event constraints support for Intel processors 2009-10-09 15:56:12 +02:00
xtensa xtensa: Cleanup linker script using new linker script macros. 2009-09-24 17:16:21 -07:00
.gitignore
Kconfig oprofile: fix oprofile regression: select RING_BUFFER_ALLOW_SWAP 2009-09-17 15:53:42 -04:00