diff options
author | Will Deacon <will.deacon@arm.com> | 2011-01-19 09:15:34 -0500 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2011-07-07 14:20:53 -0400 |
commit | 6d4eaf991c654af54a19c0fa48e0ad62cefbc37c (patch) | |
tree | 8f18b5485f598e9b41b0b09d1fc62e2d263bd454 /arch/arm/kernel/perf_event_v7.c | |
parent | 7b35fa47eecd0c746924a6d6c2a897d2cec778ba (diff) |
ARM: perf: add PMUv2 common event definitions
The PMUv2 specification reserves a number of event encodings
for common events.
This patch adds these events to the common event enumeration
in preparation for PMUv2 cores, such as Cortex-A15.
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm/kernel/perf_event_v7.c')
-rw-r--r-- | arch/arm/kernel/perf_event_v7.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 554eba3dbf65..01b1145f07e5 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c | |||
@@ -17,17 +17,23 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #ifdef CONFIG_CPU_V7 | 19 | #ifdef CONFIG_CPU_V7 |
20 | /* Common ARMv7 event types */ | 20 | /* |
21 | * Common ARMv7 event types | ||
22 | * | ||
23 | * Note: An implementation may not be able to count all of these events | ||
24 | * but the encodings are considered to be `reserved' in the case that | ||
25 | * they are not available. | ||
26 | */ | ||
21 | enum armv7_perf_types { | 27 | enum armv7_perf_types { |
22 | ARMV7_PERFCTR_PMNC_SW_INCR = 0x00, | 28 | ARMV7_PERFCTR_PMNC_SW_INCR = 0x00, |
23 | ARMV7_PERFCTR_IFETCH_MISS = 0x01, | 29 | ARMV7_PERFCTR_IFETCH_MISS = 0x01, |
24 | ARMV7_PERFCTR_ITLB_MISS = 0x02, | 30 | ARMV7_PERFCTR_ITLB_MISS = 0x02, |
25 | ARMV7_PERFCTR_DCACHE_REFILL = 0x03, | 31 | ARMV7_PERFCTR_DCACHE_REFILL = 0x03, /* L1 */ |
26 | ARMV7_PERFCTR_DCACHE_ACCESS = 0x04, | 32 | ARMV7_PERFCTR_DCACHE_ACCESS = 0x04, /* L1 */ |
27 | ARMV7_PERFCTR_DTLB_REFILL = 0x05, | 33 | ARMV7_PERFCTR_DTLB_REFILL = 0x05, |
28 | ARMV7_PERFCTR_DREAD = 0x06, | 34 | ARMV7_PERFCTR_DREAD = 0x06, |
29 | ARMV7_PERFCTR_DWRITE = 0x07, | 35 | ARMV7_PERFCTR_DWRITE = 0x07, |
30 | 36 | ARMV7_PERFCTR_INSTR_EXECUTED = 0x08, | |
31 | ARMV7_PERFCTR_EXC_TAKEN = 0x09, | 37 | ARMV7_PERFCTR_EXC_TAKEN = 0x09, |
32 | ARMV7_PERFCTR_EXC_EXECUTED = 0x0A, | 38 | ARMV7_PERFCTR_EXC_EXECUTED = 0x0A, |
33 | ARMV7_PERFCTR_CID_WRITE = 0x0B, | 39 | ARMV7_PERFCTR_CID_WRITE = 0x0B, |
@@ -39,21 +45,30 @@ enum armv7_perf_types { | |||
39 | */ | 45 | */ |
40 | ARMV7_PERFCTR_PC_WRITE = 0x0C, | 46 | ARMV7_PERFCTR_PC_WRITE = 0x0C, |
41 | ARMV7_PERFCTR_PC_IMM_BRANCH = 0x0D, | 47 | ARMV7_PERFCTR_PC_IMM_BRANCH = 0x0D, |
48 | ARMV7_PERFCTR_PC_PROC_RETURN = 0x0E, | ||
42 | ARMV7_PERFCTR_UNALIGNED_ACCESS = 0x0F, | 49 | ARMV7_PERFCTR_UNALIGNED_ACCESS = 0x0F, |
50 | |||
51 | /* These events are defined by the PMUv2 supplement (ARM DDI 0457A). */ | ||
43 | ARMV7_PERFCTR_PC_BRANCH_MIS_PRED = 0x10, | 52 | ARMV7_PERFCTR_PC_BRANCH_MIS_PRED = 0x10, |
44 | ARMV7_PERFCTR_CLOCK_CYCLES = 0x11, | 53 | ARMV7_PERFCTR_CLOCK_CYCLES = 0x11, |
45 | 54 | ARMV7_PERFCTR_PC_BRANCH_PRED = 0x12, | |
46 | ARMV7_PERFCTR_PC_BRANCH_MIS_USED = 0x12, | 55 | ARMV7_PERFCTR_MEM_ACCESS = 0x13, |
56 | ARMV7_PERFCTR_L1_ICACHE_ACCESS = 0x14, | ||
57 | ARMV7_PERFCTR_L1_DCACHE_WB = 0x15, | ||
58 | ARMV7_PERFCTR_L2_DCACHE_ACCESS = 0x16, | ||
59 | ARMV7_PERFCTR_L2_DCACHE_REFILL = 0x17, | ||
60 | ARMV7_PERFCTR_L2_DCACHE_WB = 0x18, | ||
61 | ARMV7_PERFCTR_BUS_ACCESS = 0x19, | ||
62 | ARMV7_PERFCTR_MEMORY_ERROR = 0x1A, | ||
63 | ARMV7_PERFCTR_INSTR_SPEC = 0x1B, | ||
64 | ARMV7_PERFCTR_TTBR_WRITE = 0x1C, | ||
65 | ARMV7_PERFCTR_BUS_CYCLES = 0x1D, | ||
47 | 66 | ||
48 | ARMV7_PERFCTR_CPU_CYCLES = 0xFF | 67 | ARMV7_PERFCTR_CPU_CYCLES = 0xFF |
49 | }; | 68 | }; |
50 | 69 | ||
51 | /* ARMv7 Cortex-A8 specific event types */ | 70 | /* ARMv7 Cortex-A8 specific event types */ |
52 | enum armv7_a8_perf_types { | 71 | enum armv7_a8_perf_types { |
53 | ARMV7_PERFCTR_INSTR_EXECUTED = 0x08, | ||
54 | |||
55 | ARMV7_PERFCTR_PC_PROC_RETURN = 0x0E, | ||
56 | |||
57 | ARMV7_PERFCTR_WRITE_BUFFER_FULL = 0x40, | 72 | ARMV7_PERFCTR_WRITE_BUFFER_FULL = 0x40, |
58 | ARMV7_PERFCTR_L2_STORE_MERGED = 0x41, | 73 | ARMV7_PERFCTR_L2_STORE_MERGED = 0x41, |
59 | ARMV7_PERFCTR_L2_STORE_BUFF = 0x42, | 74 | ARMV7_PERFCTR_L2_STORE_BUFF = 0x42, |