Linux 系统崩溃卡死,但没有任何 dump 输出,该如何排查?

20 天前
 villivateur

设备:rk3568 平台,Linux 4.19 ,Ubuntu 20.04

崩溃概率:偶现。

崩溃的时候系统彻底卡死,调试串口也没有任何输出,连 panic 都不打印。

我尝试 echo c > /proc/sysrq-trigger ,发现调试串口是有调用栈打印的。我也启用了 nmi_watchdog,在手动 echo c > /proc/sysrq-trigger 的时候看门狗能正常启动,但卡死的时候看门狗也失效了。

这个内核是我自己改过的,我该如何排查:

  1. 这个问题是硬件问题还是软件问题导致的?
  2. 如果是软件问题,我该如何 debug ?
1565 次点击
所在节点    Linux
17 条回复
XDiLa
19 天前
想把发弄个日志收集工具 把 kern.log syslog dmesg 推送出去,等到到时候服务器夯住了就可以分析了
villivateur
19 天前
@XDiLa 连调试串口都不打印东西了,日志肯定也没有啊,主要就是死机之前啥异常都没有,突然就死了
CapNemo
19 天前
一个想法是往地址线上挂个示波器,看看还有没有在执行任何指令
leonshaw
19 天前
内存够的话把 kdump 开起来
villivateur
19 天前
@leonshaw kdump 似乎只能分析 kernel-panic 一类的问题,我这个是彻底死掉了,切换内核的动作理论上也无法完成
villivateur
19 天前
@CapNemo 哈哈,这确实也是个没有办法的办法了
LXGMAX
19 天前
rk 啊,应该是供电不够了
villivateur
19 天前
@LXGMAX 你是有经验吗?
LXGMAX
19 天前
@villivateur 我做 rk 方案的
villivateur
19 天前
@LXGMAX 供电不足是因为供电芯片的 bug 导致电压抖动,还是说在高负载情况下电压持续性偏低?因为我的设备在轻载情况下也会死机。
myxvhgiile
19 天前
既然是你改过的内核,那首先应该尝试还原修改看看能不能复现吧,如果还原后就不会复现了就从你修改的部分入手去调试呗。除此以外我能想到就是 jlink 连上尝试调试一下了,既然内核是你自己编译的,gdb 调试一下还是很有可能看到程序具体是跑到哪里了的。
LXGMAX
19 天前
@villivateur 检查下硬件,DDR 那块,或者是不是虚焊了
Geekerstar
19 天前
有没有显卡,装显卡驱动没有?
Geekerstar
19 天前
@Geekerstar rk3568 平台是开发板啊,当我没说
villivateur
19 天前
@LXGMAX 应该不是生产制造的问题,我这边有三个样品,都一样会死
updateing
19 天前
卡死的时候从串口输入 SysRq ( Break + 字母键,不是 shell echo )还有反应吗?如果没有,那可能是在硬中断关闭时死循环或者挂掉了。有的话就可以通过 SysRq 看到很多信息。如果这个板子支持 JTAG 之类的更底层的调试手段也可以试试。
txx
18 天前
我最近遇到了类似的问题,ubuntu 直接卡住完全没有任何日志。

我之前以为是我 pytorch 炼丹过热导致的,后来发现也不是这么回事,因为我做并发下载测试数据的时候也挂了,但是温度很低。实在忍不了了就去了趟电脑城找人查一下是不是主板硬件故障。

结果做完 memtest 发现,是 DDR5 四通道有问题,两组双通道套条 单独插就一点问题没有,四条全插上就在内存压力测试的时候偶发错误。

现在拆掉了一对之后什么事都没了,除了偶尔 oom…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079519

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX