[PATCH v2 0/2] sched/nohz: disallow non-existent cores from nohz-full

From: Paul Gortmaker
Date: Mon Feb 21 2022 - 13:51:54 EST


This is a rebase and retest of two fixes I'd sent earlier[1].

The rebase is required due to conflicts in my patch #1 and where Frederic updated
the unwind code in housekeeping_setup in his series[2] and that series is now
in sched/core of tip[3].

So this update is against a baseline of ed3b362d54f0 found in sched/core as
"sched/isolation: Split housekeeping cpumask per isolation features" in tip.

Changes amount to "return 0" ---> "goto out_free" and adding a nod to PaulM's
observation that nohz_full w/o a cpuset is coming someday into the commit log.

[1] https://lore.kernel.org/all/20211206145950.10927-1-paul.gortmaker@xxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20220207155910.527133-1-frederic@xxxxxxxxxx/
[3] git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git

----- Original v1 text follows -----

A couple months back I sent a fix to reconcile rcu_nocbs= input
restrictions with nohz_full= input restrictions; with the latter being
more restrictive than the former.

However, in relaxing the nohz_full restrictions, I made it possible to
boot with a nohz_full= parameter that contains nothing but nonexistent
and not-possible cores - which will trigger a WARN.

This fixes the original reconcile commit by explicitly coding our
allowed values just like RCU does, and changes the WARN_ON to a
WARN_ON_ONCE, since it needlessly rendered the machine unusable.

---

Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Nicholas Piggin <npiggin@xxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Paul Gortmaker (2):
sched/isolation: really align nohz_full with rcu_nocbs
tick/nohz: WARN_ON --> WARN_ON_ONCE to prevent console saturation

kernel/sched/isolation.c | 11 +++++++++++
kernel/time/tick-sched.c | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)

--
2.17.1