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

John Garry
2020-02-11T15:07:36Z

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@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 ;-)

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