news 2026/4/15 12:35:11

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/4/13 23:33:06

终极指南:如何用ComfyUI-Lumi-Batcher快速提升AI图像生成效率

终极指南:如何用ComfyUI-Lumi-Batcher快速提升AI图像生成效率 【免费下载链接】comfyui-lumi-batcher ComfyUI Lumi Batcher is a batch processing extension plugin designed for ComfyUI, aiming to improve workflow debugging efficiency. Traditional debuggi…

作者头像 李华
网站建设 2026/4/15 11:44:17

3步极速部署:自然语言SQL转换框架完整实践指南

3步极速部署:自然语言SQL转换框架完整实践指南 【免费下载链接】XiYan-SQL A MULTI-GENERATOR ENSEMBLE FRAMEWORK FOR NATURAL LANGUAGE TO SQL 项目地址: https://gitcode.com/gh_mirrors/xiy/XiYan-SQL 在当今数据驱动的时代,如何让非技术用户…

作者头像 李华
网站建设 2026/4/15 18:42:25

Beta Sprint 1 冲刺日志(前端组)

EE308FZ - 6th Assignment - PoopCare Sprint Essays - Frontend Group Beta Sprint 1 冲刺日志(前端组)Course of the AssignmentEE308FZ Software EngineeringAssignment RequirementsAssignment 6 - Beta Sprint (Frontend Group Sprint Log)Objectiv…

作者头像 李华
网站建设 2026/4/16 7:35:52

Zotero PDF Translate 插件:解锁多语言PDF阅读新体验

在学术研究和文献阅读过程中,面对大量外文PDF文档时,语言障碍常常成为困扰研究者的难题。Zotero PDF Translate 插件应运而生,为 Zotero 用户提供了一键翻译PDF文档中选中文本的强大功能,让跨语言阅读变得轻松便捷。 【免费下载链…

作者头像 李华
网站建设 2026/4/16 7:35:53

Pix4D Mapper无人机数据处理终极指南:从入门到精通

Pix4D Mapper无人机数据处理终极指南:从入门到精通 【免费下载链接】UAVPix4DMapper介绍与安装包 Pix4D Mapper是一款专业的无人机(UAV)数据处理软件,广泛应用于地理信息系统(GIS)、农业、建筑和环境监测等…

作者头像 李华
网站建设 2026/4/16 7:35:41

5分钟快速上手Mirai Console:打造专属QQ机器人

5分钟快速上手Mirai Console:打造专属QQ机器人 【免费下载链接】mirai-console mirai 的高效率 QQ 机器人控制台 项目地址: https://gitcode.com/gh_mirrors/mi/mirai-console 还在为QQ机器人开发头疼吗?Mirai Console作为mirai的高效率QQ机器人控…

作者头像 李华