1.问题背景
1.一台具有96个vCPU的VM上,Guest OS出现大量的SoftLockup,最后导致系统宕机.
2. 服务器默认是关闭内核抢占.
2.分析过程
2.1 什么情况下出现Softlockup
简单点就是CPU一定时间内不能进行进程调度,会出现Softlockup,不能调度的原因可能有:1.进程关抢占后长时间执行,2.softirq执行时间太长,3.中断风暴. 4.内核执行路径太长(服务器内核默认是不可能抢占),5.spinlock问题,6.runqueue 的RT 队列太长
2.2 堆栈分析
cpu的堆栈,RIP大部分在smp_call_function_many和native_queued_spin_lock_slowpath函数,堆栈都是
在缺页中断
[4401.706361] CPU: 46 PID: 146148 Comm: fuxi_bk_shuffle Tainted:
[ 4401.706368] RIP: 0010:[<ffffffff8111d6ac>] [<ffffffff8111d6ac>] smp_call_function_many+0x1ec/0x250
[ 4401.706369] RSP: 0000:ffffc90036e6fbf8 EFLAGS: 00000202
[ 4401.706387] Call Trace:
[ 4401.706391] [<ffffffff81077d0f>] native_flush_tlb_others+0x11f/0x180
[ 4401.706393] [<ffffffff81077e0a>] flush_tlb_mm_range+0x9a/0x150
[ 4401.706396] [<ffffffff811fd778>] ptep_clear_flush+0x58/0x70
[ 4401.706398] [<ffffffff811ebe38>] w

最低0.47元/天 解锁文章
999

被折叠的 条评论
为什么被折叠?



