Messages in this thread | | | From | Valentin Schneider <> | Subject | [PATCH v3 0/2] sched/fair: nohz.next_balance vs newly-idle CPUs | Date | Mon, 23 Aug 2021 12:16:58 +0100 |
| |
Hi folks,
This was caught up by our testing on an arm64 RB5 board - that's an 8 CPUs DynamIQ SoC with 4 littles, 3 mediums and 1 big. It seems to rely more on NOHZ balancing than our other boards being tested, which highlighted that not including a newly-idle CPU into nohz.next_balance can cause issues (especially when the other CPUs have had their balance_interval inflated by pinned tasks).
As suggested by Vincent, the approach here is to mimic what was done for nohz.has_blocked, which gives us sane(ish) ordering guarantees.
Revisions =========
v2 -> v3 ++++++++
o Rebased against latest tip/sched/core: 234b8ab6476c ("sched: Introduce dl_task_check_affinity() to check proposed affinity") o Kept NOHZ_NEXT_KICK in NOHZ_KICK_MASK, but changed nohz_balancer_kick() to issue kicks with NOHZ_STATS_KICK | NOHZ_BALANCE_KICK instead (Dietmar) o Added missing NOHZ_STATS_KICK gate for nohz.next_blocked update (Vincent)
v1 -> v2 ++++++++
o Ditched the extra cpumasks and went with a sibling of nohz.has_blocked (Vincent)
Cheers, Valentin
Valentin Schneider (2): sched/fair: Add NOHZ balancer flag for nohz.next_balance updates sched/fair: Trigger nohz.next_balance updates when a CPU goes NOHZ-idle
kernel/sched/fair.c | 39 +++++++++++++++++++++++++++------------ kernel/sched/sched.h | 8 +++++++- 2 files changed, 34 insertions(+), 13 deletions(-)
-- 2.25.1
| |