Linux 6.8采用AMD CPU优化以避免不必要的序列化MSR访问

2024年 1月 10日 71.1k 0

Linux 6.8采用AMD CPU优化以避免不必要的序列化MSR访问-1
X86 CPU拉请求已经为Linux 6.8内核做好了准备,除了添加新的AMD Zen功能标志轻松隔离不同代的CPU外,还对AMD CPU进行了优化,以避免不必要的MFENCE+LFENCE障碍。

Linux x86/x86_64内核在访问某些MSR时设置了MFENCE和LFENCE同步障碍,因为这是英特尔CPU的必要行为,并由英特尔工程师添加到Linux内核中。但是在AMD处理器上不需要MFENCE+LFENCE屏障,因此Linux6.8的这个优化消除了在AMD处理器上运行时的这种行为。特别是,AMD处理器上的时间戳校准(TSC)和x2APIC型号特定寄存器(MSR)不需要MFENCE+LFENCE屏障。

我写了关于这件事的文章性能优化回到最初为Linux内核开发它的时候。现在,它即将登陆Linux6.8。

Linux 6.8采用AMD CPU优化以避免不必要的序列化MSR访问-2

使用修改后的IPI基准测试,AMD评估了绕过此同步障碍对性能的影响:

对比x2AVIC修复前后的性能,可以看出性能提升了~4%。

在Zen4系统上,使用未修改的ipi工作台(在带有和不带有ware_wrmsr_figure()的情况下使用‘esh-ipi’选项)捕获的性能也显示了在没有使用ware_wrmsr_figure()的情况下显著的性能改进。‘esh-ipi’选项忽略CCX或ccd,只选取随机的vCPU。

WINE_WRMSR_FIVEN()的平均吞吐量(10次迭代),

累计吞吐量:4933374 IPI/S

平均吞吐量(10次迭代),不使用WARTY_WRMSR_FARCH(),

累计吞吐量:6355156 IPI/s”

在AMD处理器上不序列化MSR访问的更改可以在X86/CPU拉入 for Linux 6.8, albeit too bad this behavior wasn't properly gated for being Intel-specific in the first place.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论