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 or EPOLL_WAIT 9 10RT_FRIENDLY_NANOSLEEP = CLOCK_NANOSLEEP 11 and NANOSLEEP_TIMER_ABSTIME 12 and (NANOSLEEP_CLOCK_MONOTONIC or NANOSLEEP_CLOCK_TAI) 13 14RT_FRIENDLY_WAKE = WOKEN_BY_EQUAL_OR_HIGHER_PRIO 15 or WOKEN_BY_HARDIRQ 16 or WOKEN_BY_NMI 17 or ABORT_SLEEP 18 or KTHREAD_SHOULD_STOP 19 20ALLOWLIST = BLOCK_ON_RT_MUTEX 21 or FUTEX_LOCK_PI 22 or TASK_IS_RCU 23 or TASK_IS_MIGRATION 24