新浪科技

等了两年!Linux 7.3终于修复NBCON导致的SMP启动挂起Bug

快科技官方

关注

快科技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回传至其他仍受支持的稳定内核分支。

对于运行多核服务器、曾遭遇随机启动卡死的运维人员而言,这无疑是一个迟来的好消息。

【本文结束】如需转载请务必注明出处:快科技

责任编辑:红茶

加载中...