sched: Make RCU nest depth distinct in __might_resched()
authorThomas Gleixner <tglx@linutronix.de>
Thu, 23 Sep 2021 16:54:43 +0000 (18:54 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 1 Oct 2021 11:57:51 +0000 (13:57 +0200)
commit50e081b96e35e43b65591f40f7376204decd1cb5
treeca4532d6008097e6e5b81ba564e67460a945dc37
parent8d713b699e84aade6b64e241a35f22e166fc8174
sched: Make RCU nest depth distinct in __might_resched()

For !RT kernels RCU nest depth in __might_resched() is always expected to
be 0, but on RT kernels it can be non zero while the preempt count is
expected to be always 0.

Instead of playing magic games in interpreting the 'preempt_offset'
argument, rename it to 'offsets' and use the lower 8 bits for the expected
preempt count, allow to hand in the expected RCU nest depth in the upper
bits and adopt the __might_resched() code and related checks and printks.

The affected call sites are updated in subsequent steps.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20210923165358.243232823@linutronix.de
include/linux/kernel.h
include/linux/sched.h
kernel/sched/core.c