当前位置:首页>Linux>嵌入式linux系统异常卡顿问题分析

嵌入式linux系统异常卡顿问题分析

  • 2026-08-22 22:50:55
嵌入式linux系统异常卡顿问题分析

点击蓝字

关注我们

嵌入式linux系统异常卡顿问题

在我们日常使用的板卡上,会经常遇到板卡异常卡死导致看门狗触发的问题,这大概是我们经常遇到的问题,因可能性太多,今天只分享一种最近发现导致板卡卡死的问题及原因。

定位问题

在最近的板卡使用过程中,客户现场出现了一个问题,偶现板卡异常卡死,设备无法通过uart串口或者网络来进行通信登陆,长时间后会触发我们的看门狗保护进程,进而导致我们板卡设备异常重启。

在第一次出现时,由于我们研发并未看到实际产生的现象,只能通过现场同事描述的现象来判断,但属于老虎吃刺猬--无从下口。

就自己在我们研发中心搭建了一个环境,按照现场的场景来运行。

为了保证能看到出问题时的情况,采用开启top -d 1的命令来实现1秒1查询,与此同时,在采用 cat /proc/kmsg的方法来实时捕获内核态打印。

在连续拷机一个星期后,发现打印如下:

[58563.589554] BUG: workqueue lockup - pool cpus=3 node=0 flags=0x0 nice=0 stuck for 58373s!

[58594.301000] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=0 stuck for 58404s!

[58594.309204] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=-20 stuck for 57824s!

[58594.317566] BUG: workqueue lockup - pool cpus=3 node=0 flags=0x0 nice=0 stuck for 58404s!

[58625.045002] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=0 stuck for 58435s!

[58625.053199] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=-20 stuck for 57855s!

[58625.061554] BUG: workqueue lockup - pool cpus=3 node=0 flags=0x0 nice=0 stuck for 58435s!

[59301.033001] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=0 stuck for 59111s!

[59301.041200] BUG: workqueue lockup - pool cpus=2 node=0 flags=0x0 nice=-20 stuck for 58530s!

[59301.049563] BUG: workqueue lockup - pool cpus=3 node=0 flags=0x0 nice=0 stuck for 59111s!

分析问题

通过查看top的结果来分析,是由于cpu的3核和4核的cpu利用率过高,导致绑定到3、4核上运行的进程在3、4核上排队,导致整个平均负载极速升高,进而引发系统整体变慢,响应卡顿。

此时我们已经定位出问题是由于这个原因导致的,那么为什么平均负载会导致这种问题产生呢?这个后面再单独列个专题来讲讲平均负载等各种参数及分析方法吧,不是一两句就能讲清楚的。今天先这样吧,原因找到了,接下来就是看为什么这个进程会让cpu利用率提高的问题了。

最后最后,提前祝大家新年快乐,马年大吉。

关注

linux驱动开发日常总结

公众号丨linux驱动开发日常总结

作者丨水寒

最新文章

随机文章