Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 520ed5b0 authored by Madhavan Srinivasan's avatar Madhavan Srinivasan Committed by Michael Ellerman
Browse files

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: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 60b00025
Loading
Loading
Loading
Loading
+8 −5
Original line number Original line Diff line number Diff line
@@ -93,7 +93,7 @@ static struct attribute_group power9_pmu_events_group = {
	.attrs = power9_events_attr,
	.attrs = power9_events_attr,
};
};


static const struct attribute_group *power9_pmu_attr_groups[] = {
static const struct attribute_group *power9_isa207_pmu_attr_groups[] = {
	&isa207_pmu_format_group,
	&isa207_pmu_format_group,
	&power9_pmu_events_group,
	&power9_pmu_events_group,
	NULL,
	NULL,
@@ -260,7 +260,7 @@ static int power9_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {


#undef C
#undef C


static struct power_pmu power9_pmu = {
static struct power_pmu power9_isa207_pmu = {
	.name			= "POWER9",
	.name			= "POWER9",
	.n_counter		= MAX_PMU_COUNTERS,
	.n_counter		= MAX_PMU_COUNTERS,
	.add_fields		= ISA207_ADD_FIELDS,
	.add_fields		= ISA207_ADD_FIELDS,
@@ -274,20 +274,23 @@ static struct power_pmu power9_pmu = {
	.n_generic		= ARRAY_SIZE(power9_generic_events),
	.n_generic		= ARRAY_SIZE(power9_generic_events),
	.generic_events		= power9_generic_events,
	.generic_events		= power9_generic_events,
	.cache_events		= &power9_cache_events,
	.cache_events		= &power9_cache_events,
	.attr_groups		= power9_pmu_attr_groups,
	.attr_groups		= power9_isa207_pmu_attr_groups,
	.bhrb_nr		= 32,
	.bhrb_nr		= 32,
};
};


static int __init init_power9_pmu(void)
static int __init init_power9_pmu(void)
{
{
	int rc;
	int rc = 0;


	/* Comes from cpu_specs[] */
	/* Comes from cpu_specs[] */
	if (!cur_cpu_spec->oprofile_cpu_type ||
	if (!cur_cpu_spec->oprofile_cpu_type ||
	    strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power9"))
	    strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power9"))
		return -ENODEV;
		return -ENODEV;


	rc = register_power_pmu(&power9_pmu);
	if (cpu_has_feature(CPU_FTR_POWER9_DD1)) {
		rc = register_power_pmu(&power9_isa207_pmu);
	}

	if (rc)
	if (rc)
		return rc;
		return rc;