Lines Matching +full:critical +full:- +full:action

1 // SPDX-License-Identifier: GPL-2.0-only
5 * kernel/hung_task.c - kernel thread for detecting tasks stuck in D state
37 * is disabled during the critical section. It also controls the size of
38 * the RCU grace period. So it needs to be upper-bound.
43 * Zero means infinite timeout - no checking done:
93 unsigned long switch_count = t->nvcsw + t->nivcsw; in check_hung_task()
99 if (unlikely(READ_ONCE(t->__state) & TASK_FROZEN)) in check_hung_task()
110 if (switch_count != t->last_switch_count) { in check_hung_task()
111 t->last_switch_count = switch_count; in check_hung_task()
112 t->last_switch_time = jiffies; in check_hung_task()
115 if (time_is_after_jiffies(t->last_switch_time + timeout * HZ)) in check_hung_task()
132 sysctl_hung_task_warnings--; in check_hung_task()
134 t->comm, t->pid, (jiffies - t->last_switch_time) / HZ); in check_hung_task()
136 print_tainted(), init_utsname()->release, in check_hung_task()
137 (int)strcspn(init_utsname()->version, " "), in check_hung_task()
138 init_utsname()->version); in check_hung_task()
155 * periodically exit the critical section and enter a new one.
199 if (!max_count--) in check_hung_uninterruptible_tasks()
207 * skip the TASK_KILLABLE tasks -- these can be killed in check_hung_uninterruptible_tasks()
208 * skip the TASK_IDLE tasks -- those are genuinely idle in check_hung_uninterruptible_tasks()
210 state = READ_ONCE(t->__state); in check_hung_uninterruptible_tasks()
234 return timeout ? last_checked - jiffies + timeout * HZ : in hung_timeout_jiffies()
339 unsigned long action, void *hcpu) in hungtask_pm_notify() argument
341 switch (action) { in hungtask_pm_notify()