设备:rk3568 平台,Linux 4.19 ,Ubuntu 20.04
崩溃概率:偶现。
崩溃的时候系统彻底卡死,调试串口也没有任何输出,连 panic 都不打印。
我尝试 echo c > /proc/sysrq-trigger
,发现调试串口是有调用栈打印的。我也启用了 nmi_watchdog
,在手动 echo c > /proc/sysrq-trigger
的时候看门狗能正常启动,但卡死的时候看门狗也失效了。
这个内核是我自己改过的,我该如何排查:
1
XDiLa 34 天前
想把发弄个日志收集工具 把 kern.log syslog dmesg 推送出去,等到到时候服务器夯住了就可以分析了
|
2
villivateur OP @XDiLa 连调试串口都不打印东西了,日志肯定也没有啊,主要就是死机之前啥异常都没有,突然就死了
|
3
CapNemo 34 天前
一个想法是往地址线上挂个示波器,看看还有没有在执行任何指令
|
4
leonshaw 34 天前
内存够的话把 kdump 开起来
|
5
villivateur OP @leonshaw kdump 似乎只能分析 kernel-panic 一类的问题,我这个是彻底死掉了,切换内核的动作理论上也无法完成
|
6
villivateur OP @CapNemo 哈哈,这确实也是个没有办法的办法了
|
7
LXGMAX 34 天前
rk 啊,应该是供电不够了
|
8
villivateur OP @LXGMAX 你是有经验吗?
|
9
LXGMAX 34 天前
@villivateur 我做 rk 方案的
|
10
villivateur OP @LXGMAX 供电不足是因为供电芯片的 bug 导致电压抖动,还是说在高负载情况下电压持续性偏低?因为我的设备在轻载情况下也会死机。
|
11
myxvhgiile 34 天前
既然是你改过的内核,那首先应该尝试还原修改看看能不能复现吧,如果还原后就不会复现了就从你修改的部分入手去调试呗。除此以外我能想到就是 jlink 连上尝试调试一下了,既然内核是你自己编译的,gdb 调试一下还是很有可能看到程序具体是跑到哪里了的。
|
12
LXGMAX 34 天前
@villivateur 检查下硬件,DDR 那块,或者是不是虚焊了
|
13
Geekerstar 34 天前
有没有显卡,装显卡驱动没有?
|
14
Geekerstar 34 天前
@Geekerstar rk3568 平台是开发板啊,当我没说
|
15
villivateur OP @LXGMAX 应该不是生产制造的问题,我这边有三个样品,都一样会死
|
16
updateing 34 天前 via Android
卡死的时候从串口输入 SysRq ( Break + 字母键,不是 shell echo )还有反应吗?如果没有,那可能是在硬中断关闭时死循环或者挂掉了。有的话就可以通过 SysRq 看到很多信息。如果这个板子支持 JTAG 之类的更底层的调试手段也可以试试。
|
17
txx 33 天前 via iPhone
我最近遇到了类似的问题,ubuntu 直接卡住完全没有任何日志。
我之前以为是我 pytorch 炼丹过热导致的,后来发现也不是这么回事,因为我做并发下载测试数据的时候也挂了,但是温度很低。实在忍不了了就去了趟电脑城找人查一下是不是主板硬件故障。 结果做完 memtest 发现,是 DDR5 四通道有问题,两组双通道套条 单独插就一点问题没有,四条全插上就在内存压力测试的时候偶发错误。 现在拆掉了一对之后什么事都没了,除了偶尔 oom… |