Yes, I agree. Also it's easy to construct a system design that doesn't
have a hierarchical topology. A simple example would be a cluster of 32
nodes, each of which is connected to its 31 neighbors. Perhaps for the
I doubt it's needed or useful to describe all details of an interconnect.
If detailed distance information is needed a simple table like
the SLIT table exported by ACPI would seem easier to handle.
But at least some degree of locality (e.g. "local memory controller")
would make sense.
purposes of just enumerating PMUs, a tree might be sufficient, but it's not
clear to me that it is mathematically sufficient for all topologies, not to
mention if it's intuitive enough to use. For example,
highly-interconnected components might require that PMU leaf nodes be
duplicated in multiple branches, i.e. PMU paths might not be unique in some
We already have cyclical graphs in sysfs using symlinks. I'm not
sure they are all that easy to parse/handle, but at least they
can be described.