aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMadhavan Srinivasan <maddy@linux.vnet.ibm.com>2016-12-01 19:35:00 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2016-12-02 00:26:55 -0500
commit520ed5b04f3e807e5bf1b6981ffb50524632fc5f (patch)
tree528e5f0a70d0b22504c6c4687a811de1f8e15f71
parent60b00025641e2921dcfba4d54b6cf7f0c5903677 (diff)
powerpc/perf: update attribute_group data structure
Rename the power_pmu and attribute_group variables that support PowerISA v2.07. Add a cpu feature flag check to pick the PowerISA v2.07 format structures to support. 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.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/powerpc/perf/power9-pmu.c b/arch/powerpc/perf/power9-pmu.c
index 443511b18bc5..0bdbee132105 100644
--- a/arch/powerpc/perf/power9-pmu.c
+++ b/arch/powerpc/perf/power9-pmu.c
@@ -93,7 +93,7 @@ static struct attribute_group power9_pmu_events_group = {
93 .attrs = power9_events_attr, 93 .attrs = power9_events_attr,
94}; 94};
95 95
96static const struct attribute_group *power9_pmu_attr_groups[] = { 96static const struct attribute_group *power9_isa207_pmu_attr_groups[] = {
97 &isa207_pmu_format_group, 97 &isa207_pmu_format_group,
98 &power9_pmu_events_group, 98 &power9_pmu_events_group,
99 NULL, 99 NULL,
@@ -260,7 +260,7 @@ static int power9_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
260 260
261#undef C 261#undef C
262 262
263static struct power_pmu power9_pmu = { 263static struct power_pmu power9_isa207_pmu = {
264 .name = "POWER9", 264 .name = "POWER9",
265 .n_counter = MAX_PMU_COUNTERS, 265 .n_counter = MAX_PMU_COUNTERS,
266 .add_fields = ISA207_ADD_FIELDS, 266 .add_fields = ISA207_ADD_FIELDS,
@@ -274,20 +274,23 @@ static struct power_pmu power9_pmu = {
274 .n_generic = ARRAY_SIZE(power9_generic_events), 274 .n_generic = ARRAY_SIZE(power9_generic_events),
275 .generic_events = power9_generic_events, 275 .generic_events = power9_generic_events,
276 .cache_events = &power9_cache_events, 276 .cache_events = &power9_cache_events,
277 .attr_groups = power9_pmu_attr_groups, 277 .attr_groups = power9_isa207_pmu_attr_groups,
278 .bhrb_nr = 32, 278 .bhrb_nr = 32,
279}; 279};
280 280
281static int __init init_power9_pmu(void) 281static int __init init_power9_pmu(void)
282{ 282{
283 int rc; 283 int rc = 0;
284 284
285 /* Comes from cpu_specs[] */ 285 /* Comes from cpu_specs[] */
286 if (!cur_cpu_spec->oprofile_cpu_type || 286 if (!cur_cpu_spec->oprofile_cpu_type ||
287 strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power9")) 287 strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power9"))
288 return -ENODEV; 288 return -ENODEV;
289 289
290 rc = register_power_pmu(&power9_pmu); 290 if (cpu_has_feature(CPU_FTR_POWER9_DD1)) {
291 rc = register_power_pmu(&power9_isa207_pmu);
292 }
293
291 if (rc) 294 if (rc)
292 return rc; 295 return rc;
293 296