[PATCH 0/4] sched/fair: Avoid unnecessary migrations within SMT domains

From: Ricardo Neri
Date: Thu Aug 25 2022 - 18:49:47 EST


Intel processors that support Intel Turbo Boost Max 3.0 use asym_packing
to assign higher priorities to CPUs with higher maximum frequencies. It
artificially assigns, however, a lower priority to the higher-numbered
SMT siblings to ensure that they are used last.

This results in unnecessary task migrations within the SMT domains.

On processors with a mixture of higher-frequency SMT cores and lower-
frequency non-SMT cores (such as Intel hybrid processors), a lower-
priority CPU pulls tasks from the higher-priority cores if more than one
SMT sibling is busy.

Do not use different priorities for each SMT sibling. Instead, tweak the
asym_packing load balancer to recognize SMT cores with more than one
busy sibling and let lower-priority CPUs pull tasks.

Removing these artificial priorities avoids superfluous migrations and
lets lower-priority cores inspect all SMT siblings for the busiest queue.

Thanks and BR,
Ricardo

Ricardo Neri (4):
sched/fair: Simplify asym_packing logic for SMT sched groups
sched/fair: Do not disqualify either runqueues of SMT sched groups
sched/fair: Let lower-priority CPUs do active balancing
x86/sched: Avoid unnecessary migrations within SMT domains

arch/x86/kernel/itmt.c | 23 +++++-----------------
kernel/sched/fair.c | 44 ++++++++++++++++++++----------------------
2 files changed, 26 insertions(+), 41 deletions(-)

--
2.25.1