Re: [PATCH V1 RESEND 1/3] perf/imx_ddr: Add system PMU identifier for userspace

From: John Garry
Date: Thu May 21 2020 - 10:17:33 EST


On 21/05/2020 14:26, Mark Rutland wrote:
On Wed, May 20, 2020 at 08:33:04AM +0100, Will Deacon wrote:
On Tue, May 19, 2020 at 12:51:25PM -0600, Rob Herring wrote:
On Tue, May 12, 2020 at 03:31:13PM +0800, Joakim Zhang wrote:
+static ssize_t ddr_perf_identifier_show(struct device *dev,
+ struct device_attribute *attr,
+ char *page)
+{
+ struct ddr_pmu *pmu = dev_get_drvdata(dev);
+
+ return sprintf(page, "%s\n", pmu->devtype_data->identifier);

Why do we need yet another way to identify the SoC from userspace?

I also really dislike this. What's the preferred way to identify the SoC
from userspace? It's needed so that the perf userspace tool can describe
perf events that are supported for the PMU, as this isn't probe-able
directly from the hardware. We have the same issue with the SMMUv3 PMCG [1],
and so we need to solve the problem for both DT and ACPI.

Worth noting that while in this case it happens to identify the SoC,
in general you can have distinct instances of system IP in a single
system, so I do think that we need *something* instance-specific, even
if that's combined with SoC info.


Hi Mark,

Where IP gets reused across SoCs, it makes sense for that to not depend
on top-level SoC info.

This would be quite an uncommon case. Generally most instances of a given PMU in a SoC would be identical implementations.

And anyway, we should be able to solve that problem in perf tool, as long as the PMU device name is fixed. Like what we have for the SMMUv3 PMU, where the device name contains the device bus address, i.e don't use idr for perf drivers device naming....

Thanks,
John