虽然Linux 5.18 有许多新功能,其合并窗口几天前刚刚结束,但功能代码已经开始在各种“-next”分支中积累,用于今年小暑的 Linux 5.19。今天合并的补丁为 Zen 3 处理器在下一个内核周期提供了 AMD 分支采样 (BRS) 功能。
去年我写了一篇关于谷歌工程师在使用 Zen 3 处理器为 Linux 提供 AMD 分支采样支持的文章. 这是关于利用处理器公开的关于在代码执行期间采取的分支的信息。反过来,此 AMD 分支采样信息将通过 Linux 的 perf 子系统公开以供收集。通过分析收集的硬件数据,可以利用这种 AMD 分支采样支持在 AMD 处理器上更好地优化编译器,从而做出更明智/更准确的优化决策,例如使用AutoFDO。有关更多评论,请参阅前面链接的文章。
虽然距离上次讨论 AMD 分支采样支持已经有几个月了,但根据公共 AMD 程序员参考手册中的信息,他们能够解决支持问题,现在可以进行主线化了。重新基于 Linux 5.18-rc1 后,拉入TIP 的 perf/core 分支是 AMD Zen 3 分支采样代码。反过来,这些性能/核心补丁以及接下来一个半月积累的任何补丁将依次提交给 Linux 5.19 合并窗口,届时该窗口将于 5 月底左右开始。
Zen 3 处理器可通过 CPU MSR 寄存器访问 16 深度分支采样。使用perf工具,RETIRED_BRANCH_INSTRUCTIONS 可用于匹配 BRS 行为或新的分支 brs事件。AMD Zen 3 BRS 支持将成为构建时Linux CONFIG_PERF_EVENTS_AMD_BRS开关的可选功能。很高兴 AMD BRS 现在在 Linux 下公开,但不幸的是,在 Zen 3 CPU 首次推出此功能后花了很长时间,至少它应该仍然在 Zen 4 及更高版本中用于分析/类似 AutoFDO 的优化。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun146652.html