Commit 95f58197 authored by Xin Yang's avatar Xin Yang Committed by Will Deacon
Browse files

perf/arm_dmc620: Add cpumask



Add a cpumask for the DMC620 PMU. As it is an uncore PMU, perf
userspace tool only needs to open a single counter on the CPU
specified by the CPU mask for each event on a given DMC620 device.

Signed-off-by: default avatarXin Yang <xin.yang@arm.com>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/20230613013423.2078397-1-xin.yang@arm.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent b1acb4e5
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -227,9 +227,31 @@ static const struct attribute_group dmc620_pmu_format_attr_group = {
	.attrs	= dmc620_pmu_formats_attrs,
};

static ssize_t dmc620_pmu_cpumask_show(struct device *dev,
				       struct device_attribute *attr, char *buf)
{
	struct dmc620_pmu *dmc620_pmu = to_dmc620_pmu(dev_get_drvdata(dev));

	return cpumap_print_to_pagebuf(true, buf,
				       cpumask_of(dmc620_pmu->irq->cpu));
}

static struct device_attribute dmc620_pmu_cpumask_attr =
	__ATTR(cpumask, 0444, dmc620_pmu_cpumask_show, NULL);

static struct attribute *dmc620_pmu_cpumask_attrs[] = {
	&dmc620_pmu_cpumask_attr.attr,
	NULL,
};

static const struct attribute_group dmc620_pmu_cpumask_attr_group = {
	.attrs = dmc620_pmu_cpumask_attrs,
};

static const struct attribute_group *dmc620_pmu_attr_groups[] = {
	&dmc620_pmu_events_attr_group,
	&dmc620_pmu_format_attr_group,
	&dmc620_pmu_cpumask_attr_group,
	NULL,
};