HUAWEI CLOUD EULEROS-内核异常事件分析指南:hung task

时间:2024-04-17 11:35:33

hung task

当内核检测到进程处于D状态超过设定的时间时,上报hung task异常。

  • 原理

    进程其中一个状态是TASK_UNINTERRUPTIBLE,也叫D状态,处于D状态的进程只能被wake_up唤醒。内核引入D状态时,是为了让进程等待IO完成。正常情况下,IO正常处理,进程不应该长期处于D状态。

    hung task检测进程长期处于D状态的原理,内核会创建一个线程khungtaskd,用来定期遍历系统中的所有进程,检查是否存在处于D状态超过设置时长(默认120秒)的进程。如果存在这样的进程,则打印并上报相关警告和进程堆栈。如果配置了hung_task_panic(通过proc或内核启动参数配置),则直接发起panic。

  • 触发方法

    创建内核线程,设成D状态,scheduler释放时间片。

support.huaweicloud.com/usermanual-hce/hce_02_0075.html