SuccessChanges

Summary

  1. linux: don't look at packages if we're not the first PU of the core (details)
  2. linux: add "Cluster" groups for Linux 5.16+ cluster topology (details)
  3. linux: add HWLOC_DONT_MERGE_CLUSTER_GROUPS envvar (details)
  4. tests/linux: add a ARM kunpeng 920 with a cluster level between L2 and L3 (details)
Commit 0595531fdc8659f0bc4f5440a21dc52642d5b073 by brice.goglin
linux: don't look at packages if we're not the first PU of the core

"not first PU of core" always means "not first PU of die" on Linux.

Before Die support was added, this worked fine.
Now it works fine if the kernel exposes Dies.
But missing Die info in old kernels meant a package is parsed once
per core, because no PU was marked as first of a die.
Fix this.

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
The file was modifiedhwloc/topology-linux.c (diff)
Commit 01969735dee4998f3f9d05207dafa45fa66c4c37 by brice.goglin
linux: add "Cluster" groups for Linux 5.16+ cluster topology

Expose "Cluster" group objects on Linux kernel 5.16+ for CPUs
that share some internal cache or bus. This can be equivalent
to the L2 Cache level on some platforms (e.g. x86) or a specific
level between L2 and L3 on others (e.g. ARM Kungpeng 920).

Based on a patch by Jonathan Cameron <Jonathan.Cameron@huawei.com>

These allow us to represent groups of cores where they are grouped
because of shared elements other than caches.  Typical example
would be a heirarchical coherency fabric with a cluster sharing a
single bridge to a wider coherency network on chip.

In ACPI this is represented in PPTT as a processor hierarchy node
structure above the level representing a CPU (possibly with multiple
threads) and below the hierarchy node structure that represents
either a die, or the level at which the last level cache is shared.
An example of this is the Kunpeng920 SoC which has 4 CPU cores
per cluster and up to 8 of those clusters share an L3 cache.

Similar concepts exist in device tree.

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
The file was modifiedNEWS (diff)
The file was modifiedinclude/private/private.h (diff)
The file was modifiedhwloc/topology-linux.c (diff)
The file was modifieddoc/hwloc.doxy (diff)
Commit b2dc4db076bf20adb8c2260d1b712023fe763323 by brice.goglin
linux: add HWLOC_DONT_MERGE_CLUSTER_GROUPS envvar

To prevent Cluster groups from being merged.

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
The file was modifiedhwloc/topology-linux.c (diff)
The file was modifieddoc/hwloc.doxy (diff)
The file was modifiedNEWS (diff)
Commit 32511f3e754567433d0a08ed2571e443f7fd06a1 by brice.goglin
tests/linux: add a ARM kunpeng 920 with a cluster level between L2 and L3

Thanks to Song Bao Hua (Barry Song).

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
The file was modifiedtests/hwloc/linux/Makefile.am (diff)
The file was addedtests/hwloc/linux/128arm-2pa2n8cluster4co.output
The file was addedtests/hwloc/linux/128arm-2pa2n8cluster4co.tar.bz2