diff options
author | Madhavan Srinivasan <maddy@linux.vnet.ibm.com> | 2016-12-01 19:35:00 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-12-02 00:26:55 -0500 |
commit | 520ed5b04f3e807e5bf1b6981ffb50524632fc5f (patch) | |
tree | 528e5f0a70d0b22504c6c4687a811de1f8e15f71 | |
parent | 60b00025641e2921dcfba4d54b6cf7f0c5903677 (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.c | 13 |
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 | ||
96 | static const struct attribute_group *power9_pmu_attr_groups[] = { | 96 | static 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 | ||
263 | static struct power_pmu power9_pmu = { | 263 | static 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 | ||
281 | static int __init init_power9_pmu(void) | 281 | static 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 | ||