パスワードを忘れた? アカウント作成
13316364 submission
AMD

Ryzen SEGV Battle、原因の一端が解明される

タレコミ by Anonymous Coward
あるAnonymous Coward 曰く、
RyzenでLinuxカーネルやgccを並列ビルドするとセグメンテーション違反が発生する場合がある問題がRyzen SEGV Battleと呼ばれて流行中だが、EIRAKU氏によるとSEGVの発生原因はインストラクションポインタから64バイトズレた位置の命令を実行してしまうことだそうだ。

PC向けCPUの開発競争に久しぶりに火をつけたRyzenは、4月の時点で長時間の並列ビルドによりセグメンテーション違反や一般保護違反が発生する場合があることが発見され、AMDの公式を含む様々なフォーラムで議論を呼んでいた。回避策としてSMTやASLRの無効化が挙げられていたが、それでも起こったという人もおり、問題は解決していない。そんな中、EIRAKU氏はBitVisorというハイパーバイザで検証を行い、call命令を起点にインストラクションポインタから64バイト手前にある命令を実行してしまう現象を確認したそうだ。この現象の結果、ズレた位置にある命令が不正なアドレスにアクセスしセグメンテーション違反や一般保護違反が起こっていたらしい。64バイトはキャッシュラインサイズと一致しており、命令デコーダかL1命令キャッシュ、あるいはRyzenで新設されたμOPキャッシュ辺りに問題がある可能性が高く、Twitterではマイクロコードの更新で直るのか疑問視する意見もあった。

なお、AMDはこの件についてメディアを通じてのアナウンスはしておらず、コミュニティでの対応とサポートリクエストを発行した人に対する交換対応のみ行っている他、デスクトップ向けハイエンドのThreadripperやサーバー向け新CPUのEPYCを発表している。

情報元へのリンク
この議論は、 ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...