首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spectre_v2=retpoline与性能

spectre_v2=retpoline与性能
EN

Unix & Linux用户
提问于 2020-10-31 01:54:52
回答 1查看 2.9K关注 0票数 3

https://stackoverflow.com/questions/48089426/what-is-a-retpoline-and-how-does-it-work

https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html?highlight=kernel%20parameters控制缓解谱变体2(间接分支推测)漏洞;默认操作保护内核免受用户空间攻击。spectre_v2= on -无条件启用,暗示spectre_v2_user=on无条件禁用,暗示spectre_v2_user=off自动内核检测您的spectre_v2_user=off模型是否易受攻击,选择“on”will和“auto”可以,根据CPU、可用的微码、CONFIG_RETPOLINE配置选项的设置以及内核构建所用的编译器,在运行时选择一种缓解方法。选择“on”还可以减少用户空间对用户空间任务攻击的影响。选择“off”将禁用内核和用户空间保护。还可以手动选择特定的缓解措施: retpoline -替换间接分支retpoline,generic最初的retpoline retpoline,amd特定于不指定此选项的最小雷冲冲相当于spectre_v2=auto。

为了获得最佳的计算性能,例如在hpc和控制环境中,我知道没有用户能够(a)进行这种利用(他们有足够的问题登录)和(b)无论如何,如果他们能够执行这样的壮举,我应该设置这个内核参数关闭?这将是在服务器上有一个英特尔LGA 3647铂8xxx系列cpu,当安装RHEL7.9,它自动完成GRUB_CMDLINE_LINUX= sceptre_v2=retpoline

EN

回答 1

Unix & Linux用户

发布于 2021-09-29 22:35:41

是的,如果您对边界控制很有信心,并且愿意接受风险与性能的影响,那么当然可以将spectre_v2=off设置为不启用任何幽灵/熔毁缓解措施。为了确保它们的完整性,您可以使用这个快速的n-脏脚本:

代码语言:javascript
复制
#!/bin/bash
#Works in RHEL7; does not work in RHEL8

items="pti_enabled retp_enabled ibrs_enabled"
DIR=/sys/kernel/debug/x86

echo "These should all be 0:"

for item in $items; do
        printf "%-13s " $item: ; cat $DIR/$item;
done
need_to_set=false
for item in $items; do
        grep -q 0 $DIR/$item || { echo "$item is not 0"; need_to_set=true; }
done
$need_to_set && {
        read -p "Found value(s) that are not 0. Enter 'y' if you want 0 them: " a
        [ "$a" = "y" ] && {
                for item in $items; do
                        echo 0 > $DIR/$item
                done
                echo Done.
                exit 0
        }
        echo "OK, will not set it to 0."
}

...of课程,这只会禁用缓解直到重新启动。正如您所建议的,修改内核命令行是使其保持不变的方法。

这是RHEL 7.9,顺便说一下。我相信命令行选项在8中是相同的,但是检查方式有所不同。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/617276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档