Linux(CentOS 7.9)内核提示了一个错误。它有害吗?

The Linux(CentOS 7.9) kernel has prompted a bug. Is it harmful?

提问人:czg 提问时间:1/26/2023 更新时间:1/26/2023 访问量:186

问:

我的运行环境是 VMBox 虚拟机中的 CentOS 7.9(内核为 5.16.11 版本),它分配了 1G 内存和 8 个 CPU 内核。

[root@dev236 ~]# uname -a
Linux dev236 5.16.11-1.el7.elrepo.x86_64 #1 SMP PREEMPT Tue Feb 22 10:22:37 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

我运行了一个计算密集型程序,该程序使用 8 个线程来连续使用 CPU。
一段时间后,操作系统会发出错误警报,如下所示:

[root@dev236 src]# ./server --p:command-threads-count=8

[31274.179023] rcu: INFO: rcu_preempt self-detected stall on CPU
[31274.179039] watchdog: BUG: soft lockup - CPU#3 stuck for 210S! [server:1356]
[31274.179042] watchdog: BUG: soft lockup - CPU#1 stuck for 210S! [server:1350]
[31274.179070] watchdog: BUG: soft lockup - CPU#7 stuck for 210S! [server:1355]
[31274.179214] rcu: 0-...!: (1 GPs behind) idle=52f/1/0x4000000000000000 softirq=10073864/10073865
fqs=0

Message from syslogd@dev236 at Jan 25 18:59:49 ...
 kernel:watchdog: BUG: soft lockup - CPU#3 stuck for 210S! [server:1356]

Message from syslogd@dev236 at Jan 25 18:59:49 ...
 kernel:watchdog: BUG: soft lockup - CPU#1 stuck for 210S! [server:1350]

Message from syslogd@dev236 at Jan 25 18:59:49 ...
 kernel:watchdog: BUG: soft lockup - CPU#7 stuck for 210S! [server:1355]
 
^C
[root@dev236 src]#

然后,我查看了程序日志,日志文件不断被追加,这表明我的测试程序仍在运行。

我想知道我是否可以忽略这个错误提示?

或者,我必须做点什么吗?
例如:
降低程序的计算强度?
偶尔让 CPU 休息一下?
减少程序中启动的线程数?

谢谢大家

Linux CentOS 内核 CPU RCU

评论

0赞 Peter Cordes 1/26/2023
210秒是一个非常长的时间;这不仅仅是从负载中发生的;内核具有定时器中断,以每 10 毫秒左右重新获得对 CPU 的控制权。如果您的硬件在负载下变得不稳定,请检查温度并检查 RAM。例如,运行 Prime95 压力测试,和/或启动到 memtest86+,并查看您的计算机有时是否错误地翻转位。
0赞 Margaret Bloom 1/26/2023
也许您的主机无法及时调度所有这些虚拟机管理程序线程,而客户机内核认为这是它的错误。
0赞 Mikel F 3/15/2023
我有兴趣了解当 centos 7.9 是 3.10.0 内核时,您是如何运行 5 内核的。

答: 暂无答案