diff options
author | Madhavan Srinivasan <maddy@linux.vnet.ibm.com> | 2017-02-12 12:03:12 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-02-17 05:48:53 -0500 |
commit | a114aca57a59cd92189bf3795ac082a5e8fac0f1 (patch) | |
tree | a025ccd1f67230e4fe7315269a60a7f7a09a9644 | |
parent | ac19670eb1798749121647bd9f0b403f52e31e6b (diff) |
powerpc/perf: Add alternative event table and function for power9
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/perf/power9-pmu.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/perf/power9-pmu.c b/arch/powerpc/perf/power9-pmu.c index 7332634e18c9..b38acff8a791 100644 --- a/arch/powerpc/perf/power9-pmu.c +++ b/arch/powerpc/perf/power9-pmu.c | |||
@@ -106,6 +106,21 @@ enum { | |||
106 | /* PowerISA v2.07 format attribute structure*/ | 106 | /* PowerISA v2.07 format attribute structure*/ |
107 | extern struct attribute_group isa207_pmu_format_group; | 107 | extern struct attribute_group isa207_pmu_format_group; |
108 | 108 | ||
109 | /* Table of alternatives, sorted by column 0 */ | ||
110 | static const unsigned int power9_event_alternatives[][MAX_ALT] = { | ||
111 | { PM_INST_DISP, PM_INST_DISP_ALT }, | ||
112 | }; | ||
113 | |||
114 | static int power9_get_alternatives(u64 event, unsigned int flags, u64 alt[]) | ||
115 | { | ||
116 | int num_alt = 0; | ||
117 | |||
118 | num_alt = isa207_get_alternatives(event, alt, power9_event_alternatives, | ||
119 | (int)ARRAY_SIZE(power9_event_alternatives)); | ||
120 | |||
121 | return num_alt; | ||
122 | } | ||
123 | |||
109 | GENERIC_EVENT_ATTR(cpu-cycles, PM_CYC); | 124 | GENERIC_EVENT_ATTR(cpu-cycles, PM_CYC); |
110 | GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_ICT_NOSLOT_CYC); | 125 | GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_ICT_NOSLOT_CYC); |
111 | GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); | 126 | GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); |
@@ -383,6 +398,7 @@ static struct power_pmu power9_isa207_pmu = { | |||
383 | .config_bhrb = power9_config_bhrb, | 398 | .config_bhrb = power9_config_bhrb, |
384 | .bhrb_filter_map = power9_bhrb_filter_map, | 399 | .bhrb_filter_map = power9_bhrb_filter_map, |
385 | .get_constraint = isa207_get_constraint, | 400 | .get_constraint = isa207_get_constraint, |
401 | .get_alternatives = power9_get_alternatives, | ||
386 | .disable_pmc = isa207_disable_pmc, | 402 | .disable_pmc = isa207_disable_pmc, |
387 | .flags = PPMU_NO_SIAR | PPMU_ARCH_207S, | 403 | .flags = PPMU_NO_SIAR | PPMU_ARCH_207S, |
388 | .n_generic = ARRAY_SIZE(power9_generic_events), | 404 | .n_generic = ARRAY_SIZE(power9_generic_events), |
@@ -401,6 +417,7 @@ static struct power_pmu power9_pmu = { | |||
401 | .config_bhrb = power9_config_bhrb, | 417 | .config_bhrb = power9_config_bhrb, |
402 | .bhrb_filter_map = power9_bhrb_filter_map, | 418 | .bhrb_filter_map = power9_bhrb_filter_map, |
403 | .get_constraint = isa207_get_constraint, | 419 | .get_constraint = isa207_get_constraint, |
420 | .get_alternatives = power9_get_alternatives, | ||
404 | .disable_pmc = isa207_disable_pmc, | 421 | .disable_pmc = isa207_disable_pmc, |
405 | .flags = PPMU_HAS_SIER | PPMU_ARCH_207S, | 422 | .flags = PPMU_HAS_SIER | PPMU_ARCH_207S, |
406 | .n_generic = ARRAY_SIZE(power9_generic_events), | 423 | .n_generic = ARRAY_SIZE(power9_generic_events), |