モダンなAMDシステムに影響するLinuxの古いACPIコード、パッチがLinux 6.0にマージ 5
ストーリー by nagazou
マージ 部門より
マージ 部門より
headless 曰く、
Linux カーネルが 2002 年に ACPI サポートを導入した際、一部のチップセットで発生する問題を回避するために含められた対策がモダンな AMD システムのパフォーマンスに影響することが判明し、パッチが Linux 6.0 にマージされたそうだ (Phoronix の記事 [1]、 [2]、 Ars Technica の記事、 The Register の記事)。
この問題は古いチップセットの一部で CPU クロックを停止する STPCLK# が適時にアサートされないというもので、対策として CPU が完全に停止するまでダミーの待機処理が入れられる。しかし、この処理が Zen3 システムのパフォーマンスに顕著な影響を与えることに AMD の K Prateek Nayak 氏が気付き、Zen マイクロアーキテクチャーの CPU に適用しないパッチを作成する。
一方、Intel システムでは Nehalem 以降の CPU でこのコードを使用しないのだが、実際にこの対策が必要なのは古い Intel の CPU のみだという。そのため、Intel の Dave Hansen 氏が Intel 以外のシステムに適用しないようパッチをシンプル化。このパッチが Linus Torvalds 氏に取り上げられ、Linux 6.0 にマージされることとなった。
具体的にどんな状況に影響するんだろ (スコア:1)
全力運転でなくそこそこの負荷で動いている場合に影響が大きいってことでいいんだろうかとか、消費電力への影響はあるのか(どれくらいか)とか。
あと、ZEN3 以外のアーキテクチャに影響があるのか、とか。
具体的には、Steam Desk(これはZen2みたい)に影響あるのかが気になる。持ってないけど。
まずはカーネルがアップデートされないことには試すこともできないけど。
# ほかにもゲーム向け携帯PCはあって Zen3も採用されてるけど、Windowsの場合が多いみたい。
Re: (スコア:0)
Linux稼働中は常に一部のチップセット用対策のせいでZEN3のパフォーマンスが低下するってわけではなく、その対策されたACPIサポート実行後に影響があるってことじゃないかな。
そのため件のACPIサポートを実行する機会がなければ影響しないから、あまり話題にならなかったとか。
Re:具体的にどんな状況に影響するんだろ (スコア:1)
ナナメ読みでダミー処理でCPU時間を取られてパフォーマンスに影響するのかなと思った。
のだけれども、どうせアイドルに入るのだからCPU時間を無駄にしてもせいぜい消費電力が増えるくらいの気がするのでわかる人降臨しないかなと思って書いてみた。
なのだけれど答えが出ないので、deeplを併用したうえで独自解釈する。周辺情報の裏は取っていない。
1.linuxのCPUアイドルドライバーは、acpi_idleとintel_idleがある。intel_idleはIntelチップ用で今回は関係なし。
2.acpi_idle のやっているダミーの待機処理は、I/Oポートのリード。これはとんでもなくcpuサイクルを消費する。
3.悪いことに、ダミーの待機処理の期間がcpuの負荷が低い状態としてカウントされ、cpuのステート制御に影響する。
3.により、より低いパワーステートに落とす際の処理が影響して計測される負荷が低いほうにバイアスされ、パワーステートが再度上がるのに時間を要すことになり、システム全体のパフォーマンスに悪影響を与える
英文の情報探すのがツライ人なので、いやそうじゃないよって人募集。リンクがあればがんばれる…
# 過疎ってるな。ここはすでに技術の話をする場所ではない?っていうか記事が流れるのが速すぎか…
いい話や (スコア:0)
いい話や~
ということは (スコア:0)
Zen3さんは、今までハンデ背負って競合と競り合ってたのか…