linux死机

请教,我用的MT7621双核CPU,经常出现stall on CPU的情况,
<3>INFO: rcu_sched_state detected stall on CPU 0 (t=2500 jiffies)
<3>INFO: rcu_bh_state detected stalls on CPUs/tasks: { 0} (detected by 2, t=2503 jiffies)
...

整个系统都hang住了,无法工作,也不重启。


cpu执行的指令和数据是从L1高速缓存的指令缓存和数据缓存中获取,一旦cpu要执行的指令或数据无法从高速缓存中获取,就会产生cpu stall。你这种情况是程序要求的cpu性能要高于你现在使用的cpu。

再补充一点,当cpu无法从高速缓存中获取指令或数据,那么只有从内存中获取,而这种会浪费很长时间的,所以你的程序会hang住,考虑玩个小程序吧,或者非要玩这个大程序,换个牛逼手机吧。

某个核调度出了问题,跟softlockup有点像。可能是spinlock关抢占。或者fifo死循环。
如果是前者,得查死锁回溯;
我们的业务模型会在某几个cpu上fifo死循环,没办法,目前的临时解决方法是配置了CONFIG_NO_HZ_FULL 。
CONFIG_NO_HZ_FULL的好处是,如果运行的进程只有一个,RCU也会认为该cpu经过了一个grace period,不会出死锁。


————————————————
版权声明:本文为CSDN博主「mozun1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mozun1/article/details/56290043

posted on   lydstory  阅读(110)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-11-28 linux 计算机加法
2019-11-28 subprocess
2019-11-28 纯虚函数==0
2019-11-28 关键字
2017-11-28 MODBUS协议
2017-11-28 .net反编译工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示