Linux|Linux 或将重新实现 retpoline 改写逻辑

Linux|Linux 或将重新实现 retpoline 改写逻辑

出品|开源中国
文|御坂弟弟邮件列表显示 , 英特尔工程师和长期的内核开发人员 Peter Zijlstra 发布了一组 9 个 , 重写了 Retpoline 的改写逻辑代码 。

是 Google 开发的针对 Spectre 漏洞的技术 , 它允许将间接分支与推测执行隔离开来 。 这可用于保护敏感二进制文件(例如操作系统或管理程序实现)免受针对其间接分支的分支目标注入攻击 。 Linux 内核于 2018 年开始支持 Retpoline 技术 。
【Linux|Linux 或将重新实现 retpoline 改写逻辑】此次提交的补丁重写了 retpoline 的改写方式 。 Zijlstra 表示 , 目前 objtool 为大多数 retpoline 调用发出了替代条目 , 然而非常难以扩展 , 因此 , 该补丁让 objtool 发出一个 .retpoline_sites 部分 , 列出所有编译器生成的 retpoline thunk 调用 , 然后 , 内核可以更方便地处理它们 。
根据补丁描述 , 这个重写的代码将确保 Retpolines 被改写为间接指令 , 并在编译器允许的情况下将 AMD Retpoline 处理重写为间接 LFENCE 。 x86 的 BPF代码也被更新 , 以匹配内核其他部分在 Retpoline 方面的行为 。 如果在没有启用 \"RETPOLINE=Kconfig\" 选项的情况下构建内核 , 运行 \"spectre_v2=off\" 启动选项更接近于内核镜像 。