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

Jiri Olsa
2020-02-11T13:47:27Z

On Mon, Feb 10, 2020 at 04:22:56PM +0000, John Garry wrote:
> Hi jirka,
>
> >
> > > + fclose(file);
> > > + pr_debug("gets failed for file %s\n", path);
> > > + free(buf);
> > > + return NULL;
> > > + }
> > > + fclose(file);
> > > +
> > > + /* Remove any whitespace, this could be from ACPI HID */
> > > + s = strlen(buf);
> > > + for (i = 0; i < s; i++) {
> > > + if (buf[i] == ' ') {
> > > + buf[i] = 0;
> > > + break;
> > > + };
> > > + }
> > > +
> > > + 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@huawei.com/
>
> 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 ;-)

>
> > > +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

jirka