mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
perf/arm-cmn: Fix PMU instance naming
[ Upstream commit79d7c3dca9] Although it's neat to avoid the suffix for the typical case of a single PMU, it means systems with multiple CMN instances end up with inconsistent naming. I think it also breaks perf tool's "uncore alias" logic if the common instance prefix is also the full name of one. Avoid any surprises by not trying to be clever and simply numbering every instance, even when it might technically prove redundant. Fixes:0ba64770a2("perf: Add Arm CMN-600 PMU driver") Signed-off-by: Robin Murphy <robin.murphy@arm.com> Link: https://lore.kernel.org/r/649a2281233f193d59240b13ed91b57337c77b32.1611839564.git.robin.murphy@arm.com Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
cb8e225c16
commit
1ea83d4891
@@ -17,7 +17,7 @@ PMU events
|
||||
----------
|
||||
|
||||
The PMU driver registers a single PMU device for the whole interconnect,
|
||||
see /sys/bus/event_source/devices/arm_cmn. Multi-chip systems may link
|
||||
see /sys/bus/event_source/devices/arm_cmn_0. Multi-chip systems may link
|
||||
more than one CMN together via external CCIX links - in this situation,
|
||||
each mesh counts its own events entirely independently, and additional
|
||||
PMU devices will be named arm_cmn_{1..n}.
|
||||
|
||||
@@ -1502,7 +1502,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
|
||||
struct arm_cmn *cmn;
|
||||
const char *name;
|
||||
static atomic_t id;
|
||||
int err, rootnode, this_id;
|
||||
int err, rootnode;
|
||||
|
||||
cmn = devm_kzalloc(&pdev->dev, sizeof(*cmn), GFP_KERNEL);
|
||||
if (!cmn)
|
||||
@@ -1549,14 +1549,9 @@ static int arm_cmn_probe(struct platform_device *pdev)
|
||||
.cancel_txn = arm_cmn_end_txn,
|
||||
};
|
||||
|
||||
this_id = atomic_fetch_inc(&id);
|
||||
if (this_id == 0) {
|
||||
name = "arm_cmn";
|
||||
} else {
|
||||
name = devm_kasprintf(cmn->dev, GFP_KERNEL, "arm_cmn_%d", this_id);
|
||||
name = devm_kasprintf(cmn->dev, GFP_KERNEL, "arm_cmn_%d", atomic_fetch_inc(&id));
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
err = cpuhp_state_add_instance(arm_cmn_hp_state, &cmn->cpuhp_node);
|
||||
if (err)
|
||||
|
||||
Reference in New Issue
Block a user