news 2026/10/15 20:34:54

Linux内核触发Softlockup和Hung task异常异同

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux内核触发Softlockup和Hung task异常异同


大家好,我是bug菌~

在Linux内核中,Softlockup和Hung task都是任务调度异常的情况,但它们的检测机制、触发条件和关注点有所不同:

Softlockup(软锁死)

定义

· 指某个CPU核心上的内核任务长时间占用CPU而不调度,导致该CPU上的调度器无法运行其他任务
· 核心是任务正在运行但长时间不释放CPU

检测机制

· 由NMI watchdog(不可屏蔽中断看门狗)检测
· 每个CPU核心都有一个watchdog线程定期唤醒并检查时间戳
· 如果某个CPU上的任务运行时间超过阈值(通常20秒)且watchdog线程无法运行,则触发softlockup

常见原因

· 内核代码中的无限循环或长时间循环
· 抢占被禁用时间过长
· 中断处理程序执行时间过长
· 内核bug导致的死循环

典型表现

BUG: soft lockup - CPU#1 stuck for 23s! [bash:1234]

Hung task(任务挂起)

定义

· 指用户空间任务在D状态(不可中断睡眠)停留时间过长
· 核心是任务在等待某些资源但永远得不到

检测机制

· 由内核的hung task检测器(khungtaskd内核线程)定期扫描
· 检查所有任务的D状态持续时间
· 默认阈值通常为120秒

常见原因

· 等待永远不会发生的I/O操作(如故障的磁盘)
· 内核驱动bug导致资源永远不可用
· 死锁或资源竞争
· 网络文件系统超时

典型表现

INFO: task bash:1234 blocked for more than 120 seconds

主要区别对比

维度 Softlockup Hung Task
任务状态 正在运行(R状态) 不可中断睡眠(D状态)
检测对象 CPU核心使用情况 单个任务的调度状态
检测机制 NMI watchdog定时器 khungtaskd线程扫描
触发条件 CPU被独占超过阈值 D状态持续时间过长
默认阈值 通常20秒 通常120秒
关注焦点 CPU调度问题 I/O/资源等待问题
常见根源 内核bug、死循环 硬件故障、驱动bug、死锁

调试与处理

Softlockup调试

# 查看配置cat/proc/sys/kernel/watchdog_thresh# 调整阈值(秒)echo30>/proc/sys/kernel/watchdog_thresh# 获取堆栈信息echol>/proc/sysrq-triggerdmesg|tail-50

Hung task调试

# 查看配置cat/proc/sys/kernel/hung_task_timeout_secscat/proc/sys/kernel/hung_task_panic# 强制结束挂起任务echof>/proc/sysrq-trigger# 触发OOM killer

实际场景示例

· Softlockup:内核模块中的while(1)循环,没有cond_resched()
· Hung task:NFS服务器宕机后,客户端进程在mount点上等待响应

总结

· Softlockup是"活锁"——任务在运行但独占CPU
· Hung task是"死等"——任务在等待永远不会到来的资源

两者都表示系统出现异常,但诊断时需要区分问题的性质:是CPU调度问题还是资源等待问题。实际工作中,softlockup通常更紧急,因为它直接影响CPU的可用性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 17:33:05

STM32F103RCT6原理图完整版获取 - 专业硬件设计参考指南

探索STM32F103RCT6微控制器的硬件设计精髓!本资源为您提供了一份详尽的STM32F103RCT6原理图,这是嵌入式开发者和硬件工程师不可或缺的技术参考资料。 【免费下载链接】STM32F103RCT6原理图资源下载 探索STM32F103RCT6的硬件设计奥秘,本资源为…

作者头像 李华
网站建设 2026/10/14 21:55:54

CSDN官网知识库问答机器人集成VoxCPM-1.5-TTS-WEB-UI语音回复

CSDN知识库问答机器人集成VoxCPM-1.5-TTS-WEB-UI实现语音回复 在移动优先、多模态交互日益普及的今天,用户对信息获取方式的期待早已不再局限于“看”。尤其是在技术社区如CSDN这样的知识平台,开发者可能正在调试代码、通勤途中查阅资料,甚至…

作者头像 李华
网站建设 2026/10/15 14:36:22

强力打造完美GitHub活跃度:fake-git-history终极指南

强力打造完美GitHub活跃度:fake-git-history终极指南 【免费下载链接】fake-git-history Generate Git commits. 项目地址: https://gitcode.com/gh_mirrors/fa/fake-git-history 想让你的GitHub个人主页看起来像资深开发者一样活跃吗?fake-git-h…

作者头像 李华
网站建设 2026/10/15 3:27:36

HuggingFace镜像网站推荐:快速下载VoxCPM-1.5-TTS模型文件

HuggingFace镜像网站推荐:快速下载VoxCPM-1.5-TTS模型文件 在语音合成技术飞速发展的今天,高质量、低门槛的文本转语音(TTS)系统正逐步从实验室走向实际应用。尤其是在中文场景下,能够生成自然流畅、音色逼真的语音模…

作者头像 李华
网站建设 2026/10/15 1:57:39

【资深工程师亲授】:大模型显存优化的4大误区与破解之道

第一章:Shell脚本的基本语法和命令Shell脚本是Linux/Unix系统中自动化任务的核心工具,它通过解释执行一系列命令来完成特定功能。编写Shell脚本时,通常以“shebang”开头,用于指定解释器路径,最常见的为Bash。脚本的起…

作者头像 李华
网站建设 2026/10/15 0:37:23

IEEE电力系统接线图资源:加速电力工程研究与教学的可视化工具包

IEEE电力系统接线图资源:加速电力工程研究与教学的可视化工具包 【免费下载链接】IEEE各节点系统接线图VISIO版 本仓库提供了一套详尽的电力系统接线图资源,专为电气工程领域的研究者、工程师及学者设计。此资源覆盖了IEEE标准中的多个典型系统&#xff…

作者头像 李华