Eva*_*oll 6 performance cpu linux-kernel intel vulnerability
为Spectre Variant 1 和Meltdown打补丁的芯片(如 Whiskey Lake 和 Amber Lake)将如何处理 Spectre Variant 2?我想指定一台新的笔记本电脑。目前正在评估联想 x390。它将与 Whiskey Lake 一起发货,后者声称对 Meltdown 和 Spectre Variant 1 进行了硬件修复
最大的性能标志是解决 Spectre Variant 2。当在软件中修复时,英特尔预计性能会下降 3-10%,具体取决于工作负载——当在硬件中修复时,英特尔表示性能下降要少得多,但预计会出现新平台( Cascade Lake)以提供更好的整体性能。Whiskey Lake 和 Amber Lake 都没有针对 v2 的缓解措施,但 Whiskey Lake 肯定正在修复一些更危险的攻击,例如 v3 和 L1TF。Whisky Lake 还提供新的性能箱,因为该平台也是 14++,这将有助于提高性能和功率。
所以我的问题是,如果在新芯片(Whiskey Lake 和 Amber Lake)中,仅通过修复 Spectre Variant 1 和 Meltdown 是否可以提高性能?他们为仅 2/3 CPU 漏洞提供硬件补丁这一事实是否会为内核提供任何可以利用的硬件?还是 Linux 内核会应用相同的严重软件缓解措施来防范 Spectre Variant 2?
这将是一个以英特尔为中心的答案。
请注意,在内核级别,Spectre/Meltdown 缓解措施不是一个整体,但每个 Spectre/Meltdown 变体都有自己的一组缓解措施。
Meltdown 的内核级缓解措施称为页表隔离。内核可以自行完成此操作,这会对性能产生重大影响。
如果处理器+微代码提供进程上下文标识符 (PCID),如果处理器中提供 INVPCID 指令,则效果会更好:根据微代码可以执行的操作,熔断修复微代码更新添加了其中一项或两项功能每个特定的处理器型号。如果可用的话,Linux 当然可以使用它们,并且它们可以显着降低 Meltdown 缓解措施对性能的影响。
当然,最好的情况是根本不需要页表隔离,这显然就是 Meltdown 的“硬件”修复的含义。
如果您认为您的系统足够安全并且性能对您来说更重要,则可以选择关闭 Meltdown 修复。
通过修补编译器以在特定情况下更仔细地处理指针,然后使用修补的编译器重建内核(和虚拟机管理程序,如果有)和任何安全关键二进制文件,可以缓解这种情况。这已经完成了。它在编译后的代码中的关键位置添加了一些额外的指令,这使得程序稍微变大并且执行速度变慢,但幸运的是差异通常很小。
据我了解,微代码和处理器设计在这里起不了多大作用:即使 Cascade Lake 也仅表示对此进行了操作系统/VMM 级别的修复。
这是一个棘手的问题,也可能是最难解决的问题,因为真正的解决方法需要在CPU 设计理论层面进行一些创新。
即使没有CPU硬件+微码的任何帮助,内核也可以实现retpoline,即RETurn指令trampoline。这是一种汇编级编程技术。与 Meltdown 缓解措施一样,由于实施此措施会降低系统性能,因此您可以选择禁用此缓解措施,因为您需要的性能比安全性更重要。
CPU+微码可以再次提供一些新功能,使内核更容易缓解 Spectre V2:
Linux 内核可以在适当的情况下使用这些功能,以帮助最大限度地减少 retpoline 技术造成的性能损失。