Linux 核心中發現被遺忘的補丁,影響 AMD CPU 效能

Linux 6.0 核心預計將於下週一發布,其中包括解決在 AMD Zen 處理器上運行的系統的效能問題的變更。 效能下降的根源被發現是 20 年前為解決某些晶片組中的硬體問題而添加的程式碼。 該硬體問題早已解決,並且不會出現在當前的晶片組中,但該問題的舊解決方法已被遺忘,並已成為基於現代 AMD CPU 的系統性能下降的根源。 Intel CPU 上的新系統不受舊解決方法的影響,因為它們使用單獨的 intel_idle 驅動程式而不是通用的 process_idle 驅動程式存取 ACPI。

2002 年 3 月,核心中新增了一個解決方法,以阻止晶片組中出現與由於處理 STPCLK# 訊號延遲而無法正確設定空閒狀態相關的錯誤。 為了解決這個問題,ACPI 實作增加了額外的 WAIT 指令,該指令會減慢處理器的速度,以便晶片組有時間進入空閒狀態。 在 AMD ZenXNUMX 處理器上使用 IBS(基於指令的採樣)指令進行分析時,發現處理器花費大量時間執行存根,這會導致對處理器負載狀態的錯誤解釋並設定更深的睡眠模式(C-狀態)由處理器cpuidle決定。

這種行為反映在經常在空閒和繁忙狀態之間交替的工作負載下效能下降。 例如,當使用禁用旁路操作的補丁時,tbench 測試平均值從 32191 MB/s 增加到 33805 MB/s。

來源: opennet.ru

添加評論