System shutdown exception

hi,
我们使用JetPack5.1.2,使用自研板载和Orin 64G/32G模组,在系统中尝试跑GPU压测时,发现系统无法正常关机,硬件上测量Orin的关机引脚M_MODULE_SHDN_N无法置低,shutdown命令通过接串口查看无法正常返回结束。

GPU压测方法使用如下:
git clone GitHub - wilicc/gpu-burn: Multi-GPU CUDA stress test

尝试在Orin Devikit上跑GPU压测,可以正常shutdown关机,可以帮我们分析一下吗?

做过如下尝试
1、尝试在系统应用层修改systemd默认停止超时时间,修改/etc/systemd/system.conf文件中DefaultTimeoutStopSec的时间为5s秒,无效。
2、修改systemd中关机看门狗的时间,/etc/systemd/system.conf文件中ShutdownWatchdogSec的值为5s,无效。

你是希望從software分析還是hardware…? 如果希望software 分析的話可能UART log要給我們一下…

好的,是software分析,uart log一开始会出现如下

[18:24:35:151] mogo@mos:~$ sudo shutdown -h now␍␍␊
[18:34:04:520] [sudo] password for mogo: ␍␍␊
[19:04:17:812] [15320.565618] systemd-shutdown[1]: Waiting for process: gpu_burn␍␊
[19:05:37:823] [15400.573329] systemd-shutdown[1]: Sending SIGKILL to PID 2242 (gpu_burn).␍␊
[19:05:40:613] [15403.363534] Trying to unregister non-registered hwtime source␍␊
[19:05:40:620] [15403.363542] ------------[ cut here ]------------␍␊
[19:05:40:644] [15403.374323] WARNING: CPU: 6 PID: 1 at drivers/net/phy/phy.c:1115 phy_stop+0xc4/0x190␍␊
[19:05:40:644] [15403.382680] ---[ end trace fb88d4dcb42843b8 ]---␍␊
[19:05:40:807] [15403.557469] Trying to unregister non-registered hwtime source␍␊
[19:05:40:939] [15403.689964] Trying to unregister non-registered hwtime source␍␊
[19:05:40:945] [15403.689971] ------------[ cut here ]------------␍␊
[19:05:40:963] [15403.700675] WARNING: CPU: 0 PID: 1 at drivers/net/phy/phy.c:1115 phy_stop+0xc4/0x190␍␊
[19:05:40:963] [15403.708817] ---[ end trace fb88d4dcb42843b9 ]---␍␊
[19:05:41:642] [15404.392954] arm-smmu 8000000.iommu: disabling translation␍␊
[19:05:41:652] [15404.398609] arm-smmu 10000000.iommu: disabling translation␍␊
[19:05:41:673] [15404.404278] arm-smmu 12000000.iommu: disabling translation␍␊
[19:05:41:695] [15404.439278] CPU1: shutdown␍␊
[19:05:41:716] [15404.467202] CPU2: shutdown␍␊
[19:05:41:737] [15404.487005] CPU3: shutdown␍␊
[19:05:41:780] [15404.530905] CPU4: shutdown␍␊
[19:05:41:836] [15404.586865] CPU5: shutdown␍␊
[19:05:41:892] [15404.642883] CPU6: shutdown␍␊
[19:05:41:921] [15404.671726] IRQ 148: no longer affine to CPU7␍␊
[19:05:41:946] [15404.676670] CPU7: shutdown␍␊
[19:05:41:988] [15404.739249] CPU8: shutdown␍␊
[19:05:42:024] [15404.774778] CPU9: shutdown␍␊
[19:05:42:076] [15404.826731] CPU10: shutdown␍␊
[19:05:42:117] [15404.867328] IRQ 149: no longer affine to CPU11␍␊
[19:05:42:122] [15404.872309] CPU11: shutdown␍␊
[19:05:42:157] [15404.876177] reboot: Power down␍␊
[19:05:42:157] <0xff><0xe4><0xff><0xe2>Shutdown state requested 0␍␊
[19:05:42:157] Shutting down system ...␍␊
[19:05:42:157] <break>

但是现在已经复现不到这个情况了,在执行shutdowm命令后会一直无输出。

這log看起來挺正常的 這狀況無法複製的話那還有關不起來的現象嗎?

现在的情况就是,执行shutdowm后uart一直无输出,而且关机IO一直无法拉低,应该就是无法关机吧?有没有办法在kernel里面加debug查看是哪里出现的问题呢?

沒有辦法從software debug, 你的kernel也已經關掉了.

那有什么更好的办法吗?

你有比較過你用的pinmux跟原本devkit的pinmux嗎?

很奇怪的是,我们板载上使用两颗64G模组,使用相同的Pinmux,其中有一颗在高GPU的情况下可以正常shutdowm,另外一颗就异常,更换其他的模组和板载也会出现一样的问题,或者使用32G模组也会有一样的问题。

但這些在NV devkit上都沒辦法複製到問題?

是的,没有复现到

看起来像是你们的载板设计问题。你可以对照附加在Design Guide里的checklist表来检查你们的载板设计,并且可以对照开发板的载板原理图来检查有没有错误。

板载设计?因为不使用gpu_burn压测的时候,是可以正常shutdown的

有没有可能是因为gpu_burn这个压测程序在关机的时候没有完全杀死,导致shutdown关闭不了?

基本上如果是software的問題你在NV devkit也會能複製的到

如果你對自己講的有懷疑 你也可以先實驗看看
跑來問我們也不會有答案 因為NV devkit就是複製不到問題.

hi,
我尝试使用自研的系统代码烧录到32G模组上,在NV devkit底板上跑满GPU负载,执行shutdowm关机,也出现了这个问题,系统无法关机,而且devkit底板的电源指示灯无法熄灭。

[10:33:16:973] mogo@mos:~$ sudo shutdown -h now␍
[10:33:26:900] [sudo] password for mogo: ␍␍␊
[10:33:35:934] [  114.712429] nvethernet 6a10000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock␍␊
[10:34:26:559] [  165.336441] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock␍␊
[10:34:39:871] [  178.648404] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock␍␊
[10:35:11:769] [  210.536186] hot-surface-alert cooling state: 0 -> 1␍␊
[10:35:19:807] [  218.584436] nvethernet 6810000.ethernet: [xpcs_lane_bring_up][470][type:0x4][loga-0x0] Failed to get PCS block lock␍␊

nvethernet 6a10000.ethernet 貌似是10G网络的影响,我尝试在内核中禁用该部分看看

nvethernet 6a10000.ethernet 禁用后,shutdown仍无法结束

我有一种猜测,有没有可能是因为GPU高负载的时候GPU温度较高,导致触发NV的硬件机制从而导致无法正常shutdown呢?

使用JetPack5.1.3,在NV Devkit上同时也复现到了无法shutdown的情况