Re: [PATCH RFC 5/7] perf pmu: Support matching by sysid

From: John Garry
Date: Tue Feb 11 2020 - 10:07:37 EST


On 11/02/2020 13:47, Jiri Olsa wrote:

Hi Jirka,

+
+ return buf;
+}
+

I have another series to add kernel support for a system identifier sysfs
entry, which I sent after this series:

https://lore.kernel.org/linux-acpi/1580210059-199540-1-git-send-email-john.garry@xxxxxxxxxx/

It is different to what I am relying on here - it uses a kernel soc driver
for firmware ACPI PPTT identifier. Progress is somewhat blocked at the
moment however and I may have to use a different method:

https://lore.kernel.org/linux-acpi/20200128123415.GB36168@bogus/

I'll try to check ;-)

Summary is that there exists an ACPI firmware field which we could expose to userspace via sysfs - this would provide the system id. However there is a proposal to deprecate it in the ACPI standard and, as such, would prefer that we don't add kernel support for it at this stage.

So I am evaluating the alternative in the meantime, which again is some firmware method which should allow us to expose a system id to userspace via sysfs. Unfortunately this is arm specific. However, other archs can still provide their own method, maybe a soc driver:

Documentation/ABI/testing/sysfs-devices-soc#n15



+static char *perf_pmu__getsysid(void)
+{
+ char *sysid;
+ static bool printed;
+
+ sysid = getenv("PERF_SYSID");
+ if (sysid)
+ sysid = strdup(sysid);
+
+ if (!sysid)
+ sysid = get_sysid_str();
+ if (!sysid)
+ return NULL;
+
+ if (!printed) {
+ pr_debug("Using SYSID %s\n", sysid);
+ printed = true;
+ }
+ return sysid;
+}

this part is getting complicated and AFAIK we have no tests for it

if you could think of any tests that'd be great.. Perhaps we could
load 'our' json test files and check appropriate events/aliasses
via in pmu object.. or via parse_events interface.. those test aliases
would have to be part of perf, but we have tests compiled in anyway

Sorry, I don't fully follow.

Are you suggesting that we could load the specific JSONs tables for a system
from the host filesystem?

I wish to see some test for all this.. I can only think about having
'test' json files compiled with perf and 'perf test' that looks them
up and checks that all is in the proper place

OK, let me consider this part for perf test support.

Thanks,
John