Messages in this thread | | | From | Valentin Schneider <> | Subject | [PATCH 0/8] sched/fair: misfit task load-balance tweaks | Date | Thu, 28 Jan 2021 18:31:33 +0000 |
| |
Hi folks,
Here is this year's series of misfit changes. On the menu:
o Patch 1 is an independent active balance cleanup o Patch 2 adds some more sched_asym_cpucapacity static branches o Patch 3 introduces yet another margin for capacity to capacity comparisons o Patches 4-6 build on top of patch 3 and change capacity comparisons throughout misfit load balancing o Patches 7-8 fix some extra misfit issues I've been seeing on "real" workloads.
IMO the somewhat controversial bit is patch 3, because it attempts to solve margin issues by... Adding another margin. This does solve issues on existing platforms (e.g. Pixel4), but we'll be back to square one the day some "clever" folks spin a platform with two different CPU capacities less than 5% apart.
This is based on top of today's tip/sched/core at:
65bcf072e20e ("sched: Use task_current() instead of 'rq->curr == p'")
Cheers, Valentin
Valentin Schneider (8): sched/fair: Clean up active balance nr_balance_failed trickery sched/fair: Add more sched_asym_cpucapacity static branch checks sched/fair: Tweak misfit-related capacity checks sched/fair: Use dst_cpu's capacity rather than group {min, max} capacity sched/fair: Make check_misfit_status() only compare dynamic capacities sched/fair: Filter out locally-unsolvable misfit imbalances sched/fair: Attempt misfit active balance when migration_type != migrate_misfit sched/fair: Relax task_hot() for misfit tasks
kernel/sched/fair.c | 138 ++++++++++++++++++++++++++----------------- kernel/sched/sched.h | 6 ++ 2 files changed, 89 insertions(+), 55 deletions(-)
-- 2.27.0
| |