昨天合并到 Linux 6.15 Git 并标记为在未来几天向后移植到稳定内核系列的是 x86 内存管理修复程序,以消除可能无意中跳过 TLB 刷新的窗口。
Intel Linux 工程师修复了去年 12 月引入的一个内核错误,该错误可能会意外跳过某些转换后备缓冲区 (TLB) 刷新。
Intel 工程师 Dave Hansen 通过现已合并的补丁解决了这个问题:
“tl;dr:mm 开关代码中有一个窗口,其中设置了新的 CR3,CPU 应该为新的 mm 进行 TLB 刷新。但是 should_flush_tlb() 有一个 bug 并抑制了 flush。通过扩大 should_flush_tlb() 发送 IPI 的窗口来解决此问题。
此修复将在明天的 Linux 6.15-rc6 版本中提供,并且还向后移植以修复自引入错误以来过去六个月内稳定的 Linux 内核版本。

现在,这将导致更多的 TLB 刷新,但至少此修复预计不会对性能造成明显损害:
“这将导致更多的 TLB 刷新 IPI。但窗口相对较小,我预计这不会造成任何可衡量的性能影响。
转自 Linux Lands Fix For Some TLB Flushes Being Inadvertently Skipped – Phoronix
Linuxeden开源社区