linux/arch
Cyrill Gorcunov 39ef13a4ac perf, x86: P4 PMU -- redesign cache events
To support cache events we have reserved the low 6 bits in
hw_perf_event::config (which is a part of CCCR register
configuration actually).

These bits represent Replay Event mertic enumerated in
enum P4_PEBS_METRIC. The caller should not care about
which exact bits should be set and how -- the caller
just chooses one P4_PEBS_METRIC entity and puts it into
the config. The kernel will track it and set appropriate
additional MSR registers (metrics) when needed.

The reason for this redesign was the PEBS enable bit, which
should not be set until DS (and PEBS sampling) support will
be implemented properly.

TODO
====

 - PEBS sampling (note it's tricky and works with _one_ counter only
   so for HT machines it will be not that easy to handle both threads)

 - tracking of PEBS registers state, a user might need to turn
   PEBS off completely (ie no PEBS enable, no UOP_tag) but some
   other event may need it, such events clashes and should not
   run simultaneously, at moment we just don't support such events

 - eventually export user space bits in separate header which will
   allow user apps to configure raw events more conveniently.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1278295769.9540.15.camel@minggr.sh.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-07-05 08:34:36 +02:00
..
alpha Merge branch 'linus' into perf/core 2010-06-28 22:33:24 +02:00
arm Merge commit 'v2.6.35-rc4' into perf/core 2010-07-05 08:30:58 +02:00
avr32 arch: Implement local64_t 2010-06-09 11:12:36 +02:00
blackfin arch: Implement local64_t 2010-06-09 11:12:36 +02:00
cris Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
frv Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
h8300 Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
ia64 Merge commit 'v2.6.35-rc4' into perf/core 2010-07-05 08:30:58 +02:00
m32r Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
m68k arch: Implement local64_t 2010-06-09 11:12:36 +02:00
m68knommu Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
microblaze Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
mips Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
mn10300 Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
parisc Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
powerpc Merge branch 'linus' into perf/core 2010-06-28 22:33:24 +02:00
s390 Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
score arch: Implement local64_t 2010-06-09 11:12:36 +02:00
sh Merge branch 'linus' into perf/core 2010-06-28 22:33:24 +02:00
sparc Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
um um: os-linux/mem.c needs sys/stat.h 2010-06-29 15:29:32 -07:00
x86 perf, x86: P4 PMU -- redesign cache events 2010-07-05 08:34:36 +02:00
xtensa Merge commit 'v2.6.35-rc3' into perf/core 2010-06-18 10:53:19 +02:00
.gitignore
Kconfig hw-breakpoints: Separate constraint space for data and instruction breakpoints 2010-05-01 04:32:11 +02:00