Linux 6.16 的一个非常方便的新增功能是通过 sysfs 计数器向用户空间报告硬锁和软锁的数量以及 RCU 停顿的数量。
Linux 6.16 引入了 /sys/kernel/hardlockup_count 和 /sys/kernel/softlockup_count 和 /sys/kernel/rcu_stall_count作为查看启动内核的硬锁定、软锁定和 RCU 停顿计数的简单方法。计数是自启动时间以来的总数,用于查看锁定是否经常发生和/或比较一段时间内的计数。
为这些计数器编写补丁的 Max Kellermann 在补丁系列中评论道:
“提交 9db89b411170 (”exit: Expose “oops_count” to sysfs“) 和 8b05aa263361 (”panic: Expose “warn_count” to sysfs“) 为 sysfs 添加了 oopses 和警告的计数器,这两个补丁对硬/软锁定和 RCU 停顿执行相同的操作。
所有这些计数器都可用于监视工具以检测计算机是否正常。如果内核遇到锁定或停顿,可能是由于内核错误,我想快速轻松地检测到这一点。目前没有办法检测到这一点,除了解析 dmesg。或者观察间接影响:比如某些任务没有响应,但随后我需要观察所有任务,这些影响可能需要一段时间才能变得可见/可衡量。我宁愿能够更快地发现主要原因,可能在一切都崩溃之前。
这些方便的 /sys/kernel/hardlockup_count、/sys/kernel/softlockup_count 和 /sys/kernel/rcu_stall_count 计数器是通过 Linux 6.16 的非 MM 拉取添加的。

Linuxeden开源社区