| From | Ankur Arora <> | Subject | [PATCH 14/30] preempt,rcu: warn on PREEMPT_RCU=n, preempt=full | Date | Mon, 12 Feb 2024 21:55:38 -0800 |
| |
The combination of PREEMPT_RCU=n and (PREEMPT_AUTO=y, preempt=full) works at cross purposes: the RCU read side critical sections disable preemption, while preempt=full schedules eagerly to minimize latency.
For now, warn if the user is switching to full preemption with PREEMPT_RCU=n.
Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Vincent Guittot <vincent.guittot@linaro.org> Suggested-by: Paul E. McKenney <paulmck@kernel.org> Link: https://lore.kernel.org/lkml/842f589e-5ea3-4c2b-9376-d718c14fabf5@paulmck-laptop/ Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com> --- kernel/sched/core.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index e5d631197f35..425e4f03e0af 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8922,6 +8922,10 @@ static void __sched_dynamic_update(int mode) break; case preempt_dynamic_full: + if (!IS_ENABLED(CONFIG_PREEMPT_RCU)) + pr_warn("%s: preempt=full is not recommended with CONFIG_PREEMPT_RCU=n", + PREEMPT_MODE); + preempt_dynamic_mode = preempt_dynamic_undefined; break; } -- 2.31.1
|