快科技 10 月 17 日消息,据报道,在即将发布的 Linux 7.3 稳定版内核中,一个导致多路 SMP(对称多处理)服务器随机卡在启动阶段的罕见 Bug 终于被修复。问题根源可追溯至 2024 年 9 月引入的非阻塞控制台代码。
过去两年间,多个用户报告了 SMP 系统在启动时随机挂起的问题。这些报告表现各异,但存在一个共同点:在 SMP 初始化阶段出现了 IPI(处理器间中断)丢失。进一步排查发现,禁用 NBCON 控制台即可让问题消失,矛头由此指向 NBCON。
NBCON 是 Linux 内核中的非阻塞控制台机制,用于在系统崩溃或紧急情况下仍能可靠输出日志。
问题出在其打印线程的启动时机上:NBCON 的打印 kthreads 通过 early_initcall 在启动极早期就被创建,而它们在早期启动阶段会异步地启用和禁用中断,这可能干扰某些硬件平台上的 SMP 初始化过程,导致启动挂起。
修复方案来自 Linutronix 工程师 John Ogness。补丁的核心思路是推迟 kthreads 的启动时间,将其移至所有架构相关的 initcalls 完成之后。实测表明,这一调整避免了此前可复现该问题的系统卡死。
由于该 Bug 自 2024 年 9 月起就存在于内核代码中,这一修复预计将在未来几天内从 Linux 7.3 回传至其他仍受支持的稳定内核分支。
对于运行多核服务器、曾遭遇随机启动卡死的运维人员而言,这无疑是一个迟来的好消息。

【本文结束】如需转载请务必注明出处:快科技
责任编辑:红茶


登录后才可以发布评论哦
打开小程序可以发布评论哦