Linux カーネルで忘れられたパッチが見つかり、AMD CPU パフォーマンスに影響を与える

来週月曜日にリリースされる予定の Linux 6.0 カーネルは、AMD Zen プロセッサをベースにしたシステムのパフォーマンスの問題に対処する変更を採用しました。 パフォーマンス低下の原因は、一部のチップセットのハードウェア問題を回避するために 20 年前に追加されたコードであることが判明しました。 このハードウェアの問題は長い間修正されており、現在のチップセットでは発生していませんが、古い回避策は忘れ去られており、最新の AMD CPU をベースにしたシステムのパフォーマンス低下の原因となっています。 Intel CPU を搭載した新しいシステムは、共通のprocessor_idle ドライバーではなく別の intel_idle ドライバーを使用して ACPI にアクセスするため、古い回避策の影響を受けません。

STPCLK# 信号処理遅延が原因でアイドル状態が適切に設定されないことに関連するチップセットのバグの発現をブロックするため、2002 年 3 月に回避策がカーネルに追加されました。 ACPI 実装の問題を回避するために、チップセットがアイドル状態に入る時間を確保できるように、プロセッサの速度を低下させる WAIT 命令が追加されました。 AMD ZenXNUMX プロセッサ上で IBS (命令ベース サンプリング) 命令を使用してプロファイリングを行うと、プロセッサがスタブの実行にかなりの時間を費やし、これによりプロセッサの負荷状態が誤って解釈され、より深いスリープ モードが設定されることが判明しました。 (C-State) ハンドラー cpuidle による。

この動作は、アイドル状態とビジー状態が頻繁に切り替わるワークロード下でのパフォーマンスの低下に反映されます。 たとえば、バイパス操作を無効にするパッチを使用すると、tbench テストの平均スコアは 32191 MB/s から 33805 MB/s に増加します。

出所: オープンネット.ru

コメントを追加します