linux死机问题

来源:互联网 发布:很美的诗句 知乎 编辑:程序博客网 时间:2024/04/29 16:27
请教,我用的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,不会出死锁。


每日一条命令 + 设计模式 +敏捷开发

http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/

0 0
原创粉丝点击