您现在的位置是:首页 > 文章详情

20 年前的芯片组解决方案一直在伤害现代 AMD Linux 系统

日期:2022-09-28点击:316

AMD 工程师 K Prateek Nayak 最近发现,Linux 内核中一个已有 20 年历史的芯片组变通方法仍应用于现代 AMD 系统中,而其在某些情况下会损害现代 Zen 硬件的性能。并提出了一个相关的补丁,旨在将这种变通方法限制在旧系统上,从而帮助提高现代系统的性能。

根据介绍,自从 2002 年将 ACPI 支持添加到 Linux 内核以来,就一直有一个“dummy wait op”来处理一些芯片组的 STPCLK# 没有被及时处理的问题。这个 dummy I/O read 会延迟进一步的指令处理,直到 CPU 完全停止。“至少在一些带有 VIA 芯片组的 AMD Athlon era systems 中,这是一个问题……但对于大约过去二十年的新芯片组来说,这不是问题”。

K Prateek Nayak 指出:

在 AMD Zen3 系统上使用 IBS 对某些工作负载进行采样表明,大量时间花费在 dummy op 中,这被错误地视为 C-State residency。较大的 C-State  residency 值可以使 cpuidle governor 在随后的空闲实例期间推荐一个 deeper C-State,从而开始恶性循环,导致在繁忙和空闲阶段之间快速切换的工作负载的性能下降。

其中一个工作负载是 tbench,在某些运行期间可以观察到大量的性能下降。

因此至少对于 Tbench 而言,Linux 内核中这种长期、无条件的变通方法一直在损害 AMD Ryzen / Threadripper / EPYC 在特定工作负载中的性能:

不过其并未影响现代 Intel 系统,因为较新的 Intel 平台使用了基于 MWAIT 的 intel_idle 驱动程序代码路径来进行替代。

值得一提的是,Intel Linux 工程师 Dave Hansen 在 K Prateek Nayak 的补丁上进行进一步的简化该补丁将不会应用这种“dummy wait”的解决方法,因此 AMD 系统将放弃这个会降低现代系统性能的操作。目前,这一补丁已作为 x86/urgent 修复的一部分被合并到 Linux 6.0 中。

原文链接:https://www.oschina.net/news/211945/linux-amd-old-chipset-wa
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章