禁用 Spectre 和 Meltdown 缓解措施

pio*_*iou 25 performance vulnerability

我可以在 Ubuntu 18.04LTS 中禁用 Spectre 和 Meltdown 缓解功能吗?

我想测试当我在 Linux 中禁用这两个功能时,我获得了多少性能,如果性能很大,则永久使用。

Ste*_*itt 27

许多内核启动参数可用于禁用或微调硬件漏洞缓解措施:

  • 对于 Spectre v1 和 v2nospectre_v1(x86, PowerPC), nospectre_v2(x86, PowerPC, S/390, ARM64), spectre_v2_user=off(x86)
  • 对于 SSB: spec_store_bypass_disable=off(x86, PowerPC), ssbd=force-off(ARM64)
  • L1TF : l1tf=off(x86)
  • MDS : mds=off(x86)
  • 对于 TAAtsx_async_abort=off
  • 对于 iTLB 多重命中nx_huge_pages=off
  • KPTI可以与被禁用nopti(X86,PowerPC的)或kpti=0(ARM64)
  • TSX 异步中止:tsx_async_abort=off(x86)
  • KVM NX 大页面:kvm.nx_huge_pages=off(x86)

在 5.2mitigations中引入一个元参数 ,并向后移植到 5.1.2、5.0.16 和 4.19.43(也许还有其他)。它可用于控制所有架构上的所有缓解措施,如下所示:

  • mitigations=off 将禁用所有可选的 CPU 缓解措施;
  • mitigations=auto (默认设置)将缓解所有已知的 CPU 漏洞,但保持 SMT 启用(如果已经启用);
  • mitigations=auto,nosmt 将缓解所有已知的 CPU 漏洞并在适当时禁用 SMT。

其中一些可以在运行时切换;有关详细信息,请参阅链接的文档。


小智 14

使用内核 5.1.13 或更新版本:

在引导参数上,您可以使用

mitigations=off 
Run Code Online (Sandbox Code Playgroud)

内核版本早于 5.1.13 :

noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off mitigations=off 
Run Code Online (Sandbox Code Playgroud)

将一个mitigations=off或那个长的单行添加到您的/etc/sysconfig/grub并重新生成 grub 的配置文件

grub2-mkconfig
Run Code Online (Sandbox Code Playgroud)

(您的分发程序会有所不同)。

Debian/Ubuntu 衍生发行版:

编辑文件/etc/default/grub然后运行命令

update-grub
Run Code Online (Sandbox Code Playgroud)

其次是

grub-install /dev/sdX
Run Code Online (Sandbox Code Playgroud)

whereX由相关的操作系统驱动器替换,通常a/dev/sda

  • 在 Ubuntu/Debian/Devuan/... 中,在 `update-grub` 之后你不需要 `grub-install /dev/sdX`!只需重新启动。 (8认同)