diff options
| author | Andrea Righi <arighi@nvidia.com> | 2026-09-27 15:37:19 +0200 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-09-28 08:40:22 -1000 |
| commit | 80b97ad2dfd8c812596ca86821cbe68f496da13d (patch) | |
| tree | b220d0d82a9944d0dc66b58963f1cc2cf9c52ad2 /tools/perf/scripts/python | |
| parent | 9fa10e3bc7ec61010aa91cfca6118218e3bab773 (diff) | |
| download | linux-next-80b97ad2dfd8c812596ca86821cbe68f496da13d.tar.gz linux-next-80b97ad2dfd8c812596ca86821cbe68f496da13d.zip | |
sched_ext: cid: Represent clusters explicitly
The sched_ext CID topology gives each core, LLC and NUMA node a
contiguous CID range. Without cluster entries, schedulers cannot obtain
their CID range or global index.
Walk cores by cache-sharing cluster and add cluster_cid and cluster_idx
to scx_cid_topo. Treat the level inclusively: a core without a wider
cluster forms one of its own, while an LLC-wide cache-sharing group
forms one cluster. This gives every cluster a contiguous CID range and a
dense index.
The walk now takes cores in cluster order rather than LLC order. Shards
are still cut on core boundaries, so a shard doesn't need to contain a
whole cluster; only core, cluster, LLC and node are nested, in that
order.
The level follows whatever the arch reports through
topology_cluster_cpumask(), which on x86 is the L2 sharing mask and is
populated independently of CONFIG_SCHED_CLUSTER.
Tested on a 13th Gen Intel Core i7-13800H: six SMT P-cores occupy CPUs
0-11, eight E-cores occupy CPUs 12-19 in two four-core L2 modules, and
all 20 CPUs share one LLC; the P-core pairs form two-CID clusters, the
E-core modules form four-CID clusters, and cluster_idx is dense across
all eight clusters.
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
