mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
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: Xin Yang <xin.yang@arm.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Link: https://lore.kernel.org/r/20230613013423.2078397-1-xin.yang@arm.com Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
b1acb4e560
commit
95f5819738
1 changed files with 22 additions and 0 deletions
|
@ -227,9 +227,31 @@ static const struct attribute_group dmc620_pmu_format_attr_group = {
|
||||||
.attrs = dmc620_pmu_formats_attrs,
|
.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[] = {
|
static const struct attribute_group *dmc620_pmu_attr_groups[] = {
|
||||||
&dmc620_pmu_events_attr_group,
|
&dmc620_pmu_events_attr_group,
|
||||||
&dmc620_pmu_format_attr_group,
|
&dmc620_pmu_format_attr_group,
|
||||||
|
&dmc620_pmu_cpumask_attr_group,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue