[patch 0/8] sched: Clean up might_sleep() and make it RT aware

From: Thomas Gleixner
Date: Thu Sep 23 2021 - 12:54:38 EST


The might sleep checks have grown some warts over time and especially the
underscore zoo is hard to follow.

Also the debug output is slightly confusing especially when PREEMPT_RCU is
enabled as it does not provide information about the RCU nesting depth
which might be the actual culprit. In such a case it might even print
confusing information about the place which disabled preemption despite the
fact that preemption is actually enabled.

RT in turn had it's own nasty hack to ignore RCU nesting depth because
that's required for spin/rw lock held sections.

This series addresses this by:

- Cleaning up the underscore zoo

- Enhancing the debug output

- Making RCU nest depth and preempt count checks distinct

- Fixing up the relevant places to hand in the correct expected values
for RT and !RT kernels.

The series is also available from

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git sched

Thanks,

tglx
---
include/linux/kernel.h | 13 +++-----
include/linux/preempt.h | 5 +--
include/linux/sched.h | 39 ++++++++++++++++++-------
kernel/locking/spinlock_rt.c | 17 ++++++++--
kernel/sched/core.c | 67 +++++++++++++++++++++++++++----------------
mm/memory.c | 2 -
6 files changed, 96 insertions(+), 47 deletions(-)