Hi,
On 1/28/20 11:28 AM, John Garry wrote:
On 28/01/2020 16:56, Jeremy Linton wrote:
Hi,
Hi Jeremy,
On 1/28/20 5:14 AM, John Garry wrote:
A requirement has come up recently to be able to read system SoC
packages
identifiers from userspace [0].
For device tree FW-based systems, this would be quite
straightforward, in
that we could add a soc driver for that system and use the DT model
identifier as the soc id - that's how most soc drivers seem to do it.
For ACPI-based systems, the only place I know to get (put) such SoC
information is in the PPTT, specifically the ID Type Structure for a
processor package node. A processor package node describes a physical
boundary of a processor topology.
Well presumably that is one of the use cases for DMI, which has fields
for the processor/socket as well as the machine vendor.
I did consider DMI, but I want something more generic, i.e. could cover
embedded/DT systems also.
And I need to double check if DMI really has the info I require. Last
time I checked, it didn't for my dev board, but I know that some fields
are simply not filled in.
Well the info is probably there, but that doesn't mean it should be used
programmatically. As your board shows, its not that reliable. And
looking at the linked patch I see you mention that.
But, quickly looking at the use case, I can't help but think you don't
really want any of the above, or the PPTT id. It seems the mapping
should actually be tied directly to the uncore PMU definition, rather
than a soc/machine/whatever identifier. Which would imply keying off
one of the ACPI object identifiers for the PMU itself.
So a PMU device (/sys/bus/event_source/devices) does not have a link to
the ACPI object identifiers or uncore PMU platform device etc.
And even if it did, there is no clear link between that ACPI object and
the events it supports for that implementation.
Having a direct link isn't ideal either. It seems you do mention the pmu
naming conventions, which can be controlled based on ACPI object
identifiers. Something like "uncore_dmc_hsi1" where the appended bits
could for example vary on _CID+_UID or DT name.
Not sure that is a particularly good suggestion either, but I do think
its a better idea to tie the mapping to the pmu type/man/version concept
than the SOC it appears in. The sysfs-bus-event_source-devices-* ABI
docs are noticeably silent on the format of the pmu name (is that
somewhere else?).