Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\hung_task.c Create Date:2022-07-28 11:45:08
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Check whether a TASK_UNINTERRUPTIBLE does not get woken up for* a really long time (120 seconds). If that happens, print out* a warning.

Proto:static void check_hung_uninterruptible_tasks(unsigned long timeout)

Type:void

Parameter:

TypeParameterName
unsigned longtimeout
175  max_count = The number of tasks checked:
176  last_break = jiffies
183  If test_taint(TAINT_DIE) || did_panic Then Return
186  hung_task_show_lock = false
187  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
188  Careful: this is a double loop, 'break' won't work as expected. (g, t)
189  If Not max_count -- Then Go to unlock
197  If run state == TASK_UNINTERRUPTIBLE Then check_hung_task(t, timeout)
200  unlock :
201  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
202  If hung_task_show_lock Then debug_show_all_locks()
204  If hung_task_call_panic Then
205  trigger_all_cpu_backtrace()
206  panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns.
Caller
NameDescribe
watchdogkthread which checks for tasks stuck in D state