Linux 内核中发现了一个被遗忘的补丁,该补丁会影响 AMD CPU 的性能

Linux 6.0 内核预计将于下周一发布,其中包括解决在 AMD Zen 处理器上运行的系统的性能问题的更改。 性能下降的根源被发现是 20 年前为解决某些芯片组中的硬件问题而添加的代码。 该硬件问题早已得到解决,并且不会出现在当前的芯片组中,但该问题的旧解决方法已被遗忘,并已成为基于现代 AMD CPU 的系统性能下降的根源。 Intel CPU 上的新系统不受旧解决方法的影响,因为它们使用单​​独的 intel_idle 驱动程序而不是通用的processor_idle 驱动程序访问 ACPI。

2002 年 3 月,内核中添加了一个解决方法,以阻止芯片组中出现与由于处理 STPCLK# 信号延迟而无法正确设置空闲状态相关的错误。 为了解决这个问题,ACPI 实现添加了一条额外的 WAIT 指令,该指令会减慢处理器的速度,以便芯片组有时间进入空闲状态。 在 AMD ZenXNUMX 处理器上使用 IBS(基于指令的采样)指令进行分析时,发现处理器花费大量时间执行存根,这会导致对处理器负载状态的错误解释并通过以下方式设置更深的睡眠模式(C 状态)处理器CPU空闲。

这种行为反映在经常在空闲和繁忙状态之间交替的工作负载下性能下降。 例如,当使用禁用旁路操作的补丁时,tbench 测试平均值从 32191 MB/s 增加到 33805 MB/s。

来源: opennet.ru

添加评论