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/12 14:32:41

PID控制器阶跃响应分析报告通过VoxCPM-1.5-TTS-WEB-UI语音总结

VoxCPM-1.5-TTS-WEB-UI在PID控制器分析中的语音化实践 你有没有试过连续盯着仿真波形图几个小时,眼睛发酸、脑子发木,却还得逐行读完一长串阶跃响应数据?这几乎是每个控制工程师都经历过的“职业病”。更别提在项目评审时,一边操作…

作者头像 李华
网站建设 2026/4/14 2:12:28

5步完成tmom生产制造系统的快速部署与配置指南

5步完成tmom生产制造系统的快速部署与配置指南 【免费下载链接】tmom 支持多厂区/多项目级的mom/mes系统,计划排程、工艺路线设计、在线低代码报表、大屏看板、移动端、AOT客户端...... 目标是尽可能打造一款通用的生产制造系统。前端基于最新的vue3、ts、antdesign…

作者头像 李华
网站建设 2026/4/13 18:49:06

FactoryBluePrints蓝图仓库实战指南:从零打造高效太空工厂

FactoryBluePrints蓝图仓库实战指南:从零打造高效太空工厂 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为戴森球计划中复杂的工厂布局而头疼吗&#xff…

作者头像 李华
网站建设 2026/4/4 20:50:50

移位寄存器串行通信模式解析:通俗解释四种类型

移位寄存器串行通信模式解析:从底层逻辑到实战设计你有没有遇到过这样的问题:单片机IO口不够用了,却要驱动一个8x8的LED点阵?或者需要读取16个按键的状态,却发现MCU的输入引脚捉襟见肘?别急——移位寄存器就…

作者头像 李华
网站建设 2026/4/9 12:59:51

电商平台商品介绍语音自动合成解决方案

电商平台商品介绍语音自动合成解决方案 在电商竞争日趋白热化的今天,用户不再满足于“看”商品,而是希望“听”懂产品。尤其在移动端浏览场景中,越来越多消费者倾向于通过语音播报快速获取核心卖点——比如一边做饭一边用手机了解某款空气炸锅…

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

GnuCash:终极免费双记账财务管理工具完全指南

GnuCash:终极免费双记账财务管理工具完全指南 【免费下载链接】gnucash GnuCash Double-Entry Accounting Program. 项目地址: https://gitcode.com/gh_mirrors/gn/gnucash GnuCash作为一款专业的开源财务管理软件,采用双记账会计系统&#xff0c…

作者头像 李华