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 23