Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1RULE = always ((RT and SLEEP) imply (RT_FRIENDLY_SLEEP or ALLOWLIST))
2
3RT_FRIENDLY_SLEEP = (RT_VALID_SLEEP_REASON or KERNEL_THREAD)
4 and ((not WAKE) until RT_FRIENDLY_WAKE)
5
6RT_VALID_SLEEP_REASON = FUTEX_WAIT
7 or RT_FRIENDLY_NANOSLEEP
8
9RT_FRIENDLY_NANOSLEEP = CLOCK_NANOSLEEP
10 and NANOSLEEP_TIMER_ABSTIME
11 and (NANOSLEEP_CLOCK_MONOTONIC or NANOSLEEP_CLOCK_TAI)
12
13RT_FRIENDLY_WAKE = WOKEN_BY_EQUAL_OR_HIGHER_PRIO
14 or WOKEN_BY_HARDIRQ
15 or WOKEN_BY_NMI
16 or ABORT_SLEEP
17 or KTHREAD_SHOULD_STOP
18
19ALLOWLIST = BLOCK_ON_RT_MUTEX
20 or FUTEX_LOCK_PI
21 or TASK_IS_RCU
22 or TASK_IS_MIGRATION