近日,Linux内核负责人Linus Torvalds(linux之父)删除了Amazon Web Services(AWS)工程师的补丁程序。
事情的起因是今年的三月,Intel CPU曝光容易受到新的Snoop攻击影响,可能会泄漏CPU内部存储器(缓存)中的数据。AWS工程师Pawel Wieczorkiewicz发现并报告了此攻击方法,该攻击被描述为“Snoop辅助L1数据采集”,或“Snoop”(CVE-2020-0550),这些攻击可能会影响了一系列Intel Xeon和Core CPU。
而写这个补丁的Balbir Singh表示: “这可以保护数据在任务切换到上下文后不被旁通道窃听或泄漏。” 该补丁本来会随Linux内核版本5.8一起发布。这个功能将允许应用程序以选择加入的方式调用prctl(2),在任务离开CPU后刷新L1D缓存,前提是硬件支持这个任务。
而Linus Torvalds看见却表示忍受不了。直接删了补丁,并发了邮件回复为什么。
对于删除的补丁,他说:“因为在我看来,这基本上是将缓存刷新指令导出到用户空间,并为进程提供一种方式”。“我不希望内核执行似乎“超出愚蠢”的事情。”换句话说,就是这个补丁降低了性能
而在linux的文件里也详细的说明了。
Torvald的观点之一是,在最低要求下,启用SMT应该完全禁用这种疯狂的伪安全性,因为在那种情况下它是完全没有意义的。调度根本不是SMT处于启用状态的同步点,因此在上下文切换刷新L1是很愚蠢的” 他说。
Linus表示其实对虚拟化的引用是针对AWS的,AWS与其他云提供商一样,通常启用了同步多线程(SMT)的虚拟CPU。