我在使用内核 5.15.52 的 im8mp 上进入挂起模式时遇到问题
在我的带有内核 5.10.72 的评估板上,一切正常:
root@phyboard-pollux-imx8mp-2:~# uname -a
Linux phyboard-pollux-imx8mp-2 5.10.72-bsp-yocto-nxp-i.mx8mp-pd22.1.0 #1 SMP PREEMPT Mon Jul 18 13:32:41 UTC 2022 aarch64 GNU/Linux
root@phyboard-pollux-imx8mp-2:~# echo mem > /sys/power/state
[ 96.834546] PM: suspend entry (deep)
[ 96.849167] Filesystems sync: 0.011 seconds
[ 96.924803] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 96.933169] OOM killer disabled.
[ 96.936405] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 97.242436] PM: suspend devices took 0.296 seconds
[ 97.249991] Disabling non-boot CPUs ...
[ 97.254351] CPU1: shutdown
[ 97.257081] psci: CPU1 killed (polled 0 ms)
[ 97.262697] CPU2: shutdown
[ 97.265439] psci: CPU2 killed (polled 0 ms)
[ 97.271018] CPU3: shutdown
[ 97.273734] psci: CPU3 killed (polled 0 ms)
在与内核 5.15.52 相同的评估板上,它在“PM:暂停设备...”之后卡住
root@ /home/user$ uname -a
Linux hmi 5.15.52 #1 SMP PREEMPT Mon Jan 9 14:24:04 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
root@ /home/user$ echo mem > /sys/power/state
[ 455.034722] PM: suspend entry (deep)
[ 455.042950] Filesystems sync: 0.004 seconds
[ 455.115887] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 455.124559] OOM killer disabled.
[ 455.127795] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 455.138435] imx-dwmac 30bf0000.ethernet eth1: Link is Down
[ 455.144013] imx-dwmac 30bf0000.ethernet eth1: FPE workqueue stop
[ 455.215416] fec 30be0000.ethernet eth0: Link is Down
[ 455.266494] PM: suspend devices took 0.132 seconds 看起来cpu没有达到suspend模式。
大约 50 秒后,其他信息被打印到控制台:
[ 550.390404] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 550.396515] rcu: 0-...0: (5
ticks this GP) idle=c5b/1/0x4000000000000000 softirq=6921/6922 fqs=2625
[ 550.405740] (detected by 2, t=5252 jiffies, g=8085, q=2)
[ 550.411139] Task dump for CPU 0:
[ 550.414367] task:bash state:R running task stack: 0 pid: 970 ppid: 969 flags:0x0000020e
[ 550.424286] Call trace:
[ 550.426729] __switch_to+0x108/0x160
[ 550.430316] schedule+0x74/0x110 一段时间后系统重置。
关于如何调试它的任何想法。或者我可以使用什么工具来查找原因?我不知道如何隔离问题。