perf/arm-cmn: Set PMU device parent
authorRobin Murphy <robin.murphy@arm.com>
Tue, 9 Apr 2024 17:15:17 +0000 (18:15 +0100)
committerWill Deacon <will@kernel.org>
Wed, 10 Apr 2024 15:48:17 +0000 (16:48 +0100)
Now that perf supports giving the PMU device a parent, we can use our
platform device to make the relationship between CMN instances and PMU
IDs trivially discoverable, from either nominal direction:

root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
arm_cmn_0
root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
/sys/devices/platform/ARMHC600:00

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/25d4428df1ddad966c74a3ed60171cd3ca6c8b66.1712682917.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm-cmn.c

index 6bfb0c4a1287ec42cbb0aa7012cee23de0181777..e26ad1d3ed0bb73dcc92116cba47c4936d200b8d 100644 (file)
@@ -2482,6 +2482,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
        cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
        cmn->pmu = (struct pmu) {
                .module = THIS_MODULE,
+               .parent = cmn->dev,
                .attr_groups = arm_cmn_attr_groups,
                .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
                .task_ctx_nr = perf_invalid_context,