perf_counter: x86: Expose INV and EDGE bits

Expose the INV and EDGE bits of the PMU to raw configs.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
LKML-Reference: <20090525153931.494709027@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Peter Zijlstra 2009-05-25 17:39:03 +02:00 committed by Ingo Molnar
parent 10989fb245
commit ff99be573e
1 changed files with 8 additions and 0 deletions

View File

@ -87,11 +87,15 @@ static u64 intel_pmu_raw_event(u64 event)
{ {
#define CORE_EVNTSEL_EVENT_MASK 0x000000FFULL #define CORE_EVNTSEL_EVENT_MASK 0x000000FFULL
#define CORE_EVNTSEL_UNIT_MASK 0x0000FF00ULL #define CORE_EVNTSEL_UNIT_MASK 0x0000FF00ULL
#define CORE_EVNTSEL_EDGE_MASK 0x00040000ULL
#define CORE_EVNTSEL_INV_MASK 0x00800000ULL
#define CORE_EVNTSEL_COUNTER_MASK 0xFF000000ULL #define CORE_EVNTSEL_COUNTER_MASK 0xFF000000ULL
#define CORE_EVNTSEL_MASK \ #define CORE_EVNTSEL_MASK \
(CORE_EVNTSEL_EVENT_MASK | \ (CORE_EVNTSEL_EVENT_MASK | \
CORE_EVNTSEL_UNIT_MASK | \ CORE_EVNTSEL_UNIT_MASK | \
CORE_EVNTSEL_EDGE_MASK | \
CORE_EVNTSEL_INV_MASK | \
CORE_EVNTSEL_COUNTER_MASK) CORE_EVNTSEL_COUNTER_MASK)
return event & CORE_EVNTSEL_MASK; return event & CORE_EVNTSEL_MASK;
@ -119,11 +123,15 @@ static u64 amd_pmu_raw_event(u64 event)
{ {
#define K7_EVNTSEL_EVENT_MASK 0x7000000FFULL #define K7_EVNTSEL_EVENT_MASK 0x7000000FFULL
#define K7_EVNTSEL_UNIT_MASK 0x00000FF00ULL #define K7_EVNTSEL_UNIT_MASK 0x00000FF00ULL
#define K7_EVNTSEL_EDGE_MASK 0x000040000ULL
#define K7_EVNTSEL_INV_MASK 0x000800000ULL
#define K7_EVNTSEL_COUNTER_MASK 0x0FF000000ULL #define K7_EVNTSEL_COUNTER_MASK 0x0FF000000ULL
#define K7_EVNTSEL_MASK \ #define K7_EVNTSEL_MASK \
(K7_EVNTSEL_EVENT_MASK | \ (K7_EVNTSEL_EVENT_MASK | \
K7_EVNTSEL_UNIT_MASK | \ K7_EVNTSEL_UNIT_MASK | \
K7_EVNTSEL_EDGE_MASK | \
K7_EVNTSEL_INV_MASK | \
K7_EVNTSEL_COUNTER_MASK) K7_EVNTSEL_COUNTER_MASK)
return event & K7_EVNTSEL_MASK; return event & K7_EVNTSEL_MASK;