2022-03-01 02:50:27

by Darren Hart

[permalink] [raw]
Subject: [PATCH 0/1] arm64: smp: Skip MC sched domain on SoCs with no LLC

After the feedback from Vincent and Barry, I wrote a version of this which
performed the test in topology.c and added an ACPI pptt API to detect ancestry
of cpu topology nodes. In the end, the new API felt forced and was inconsistent
with the other APIs, and the detection loop was pretty ugly with a lot corner
case cleanup. It seemed fragile and not very extensible.

This version follows the approach taken by other architectures: wait until smp
cpus are online and take advantage of the stored cpu_topology structure to make
sched domain topology decisions.

This adds a single point to test and decide on which sched domain topology
should be used for an arm64 system without impacting the scheduler code, acpi
code, or the construction of the cpu_topology structures. I think this is a
cleaner and less invasive solution which properly encapsulates the sched domain
topology decision in a way that is easy to maintain and extend over time.

Vincent did mention in an earlier version that by relying on cpumasks and
removing the MC sched domain, I didn't address possible future architectures
which may have clusters without shared cache and an MC level with shared cache.
In this version, I limit the removal of the MC level to topologies where the
coregroup weight is 1 (so it doesn't impact such future architectures). I also
think that by encapsulating the sched domain topology decision into a single
function after smp boot, it will be simple enough for someone to support such a
topology if and when it exists, allowing us to create a minimal solution to the
immediate problem of BUGing on the current topology.

Cc: Catalin Marinas <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Vincent Guittot <[email protected]>
Cc: Barry Song <[email protected]>
Cc: Valentin Schneider <[email protected]>
Cc: D. Scott Phillips <[email protected]>
Cc: Ilkka Koskinen <[email protected]>

Darren Hart (1):
arm64: smp: Skip MC sched domain on SoCs with no LLC

arch/arm64/kernel/smp.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

--
2.31.1