aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMadhavan Srinivasan <maddy@linux.vnet.ibm.com>2017-02-12 12:03:12 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2017-02-17 05:48:53 -0500
commita114aca57a59cd92189bf3795ac082a5e8fac0f1 (patch)
treea025ccd1f67230e4fe7315269a60a7f7a09a9644
parentac19670eb1798749121647bd9f0b403f52e31e6b (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.c17
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*/
107extern struct attribute_group isa207_pmu_format_group; 107extern struct attribute_group isa207_pmu_format_group;
108 108
109/* Table of alternatives, sorted by column 0 */
110static const unsigned int power9_event_alternatives[][MAX_ALT] = {
111 { PM_INST_DISP, PM_INST_DISP_ALT },
112};
113
114static 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
109GENERIC_EVENT_ATTR(cpu-cycles, PM_CYC); 124GENERIC_EVENT_ATTR(cpu-cycles, PM_CYC);
110GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_ICT_NOSLOT_CYC); 125GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_ICT_NOSLOT_CYC);
111GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); 126GENERIC_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),