影響を受けやすいコンピューターでGPUロックアップをトリガーする簡単で安全な方法はありますか?


8

私の前の質問、Ubuntu 12.04がフリーズし、パワーサイクルが必要です。ログで何を検索/ grepする必要がありますか?、私のコンピューターでGPUが断続的にロックアップしているのではないかと疑いました。週に1回程度、通常はChromeを使用しているときに発生しています。今日、私はルシッドチャートで図を作成していたときに起こりました

ATI Radeon HD 2400 XTを搭載したDell Optiplex 755とXineramaモードで実行されているデュアルモニターを使用しています。独自のATIドライバーがインストールされた12.04を使用しています。

コンピュータがロックしても、sshでログインできます。https://wiki.ubuntu.com/X/Troubleshooting/Freezeで提供されている、これを報告する手順に従ってください。

再び発生するまで待つのではなく、先に進んでバグを報告できるようにGPUをロックする(安全な)方法はありますか?

回答:


11

すばらしい質問です。

ワークロード

/ usr / share / xdiagnose / workloadsディレクトリには、グラフィックシステムを動かしてロックアップをトリガーするように設計された一連のワークロードがあります。

$ ls /usr/share/xdiagnose/workloads/
README                       do_monitor_rotation_loop
do_chws_loop*                do_screensaver_loop*
do_cpu_spin_loop             do_video_loop*
do_disk_write_loop           do_vtswitch_loop*
do_glx_loop*                 repro.sh
do_kernel_compile_loop       run_workloads
do_monitor_disable_loop*     youtube-loop.html
do_monitor_resolution_loop*  youtube-reload.html

それらを実行するには、「ru​​n」を渡す必要があることに注意してください。例えば:

$ do_glx_loop run

引数がない場合、スクリプトは使用状況を表示します。一部は安全のためです(人々が盲目的にスクリプトを実行する場合に備えます)が、ほとんどはスクリプトのAPIを整頓することです。

私がスターを付けたものは、おそらく最初から始めるのに最適なものです。最初は一度に1つのスクリプトのみを実行し、それを数時間実行します。システムが十分に生き残った場合は、2つ以上を同時に実行してみてください。

私自身はこれらのテストをあまり行っていないので、バグがないことは保証できません。しかし、それらは非常に短く単純なスクリプトなので、修正が簡単であり、パッチも大歓迎です。

また、解決しようとしているものとは無関係のロックアップを引き起こす可能性が高いことにも注意してください。GPUロックアップは、ほぼ同じ症状を持っているため、訓練されていない目とほぼ同じように見えます。

ログ

Intel Graphicsを使用している場合、必要な/ sys / kernel / debug / dri / 0 / i915_error_stateがあります。これは、ハング時のレジスタ状態のスナップショットであり、その上部にはいくつかのエラーコードが含まれています。IPEHR、PGTBL_ER、ESR、EIR。それらのコードを一致させて、同じエラーまたは同様のエラーがあるかどうかを確認します。

Intel Graphicsを使用していない場合(この場合はそうではありません)、またはi915_error_stateファイルが生成されない場合は、dmesgおよび/var/log/kern.logを確認してください。 場合によっては、GPUロックアップで、GPUロックアップが何によって、またはその中で発生したかを示します。

オープンソースの-atiドライバーには、レジスターの状態を取り込むradeontoolとavivotoolがあります。これらは主にオープンソースの-ati用ですが、ツールは-fglrxでも動作するはずです。-fglrxバグが要求されたのを見たことがありませんが、害はありません。

テスト中

すべてのドライバーについて、次のステップは通常、新しいバージョンまたは古いバージョンのドライバーのテストを開始することです。プロプライエタリドライバーの場合は、x-updates ppaを確認できますが、ベンダーのWebサイトからドライバーをダウンロードして手動でインストールする必要があります(その際、システムのパッケージングを台無しにしてください)。-intel、-nouveau、-atiなどのFOSSドライバーの場合、新しいカーネルまたは新しいメサのいずれかをテストすることを意味します。新しいカーネルのパッケージビルドをhttp://kernel.ubuntu.com/~kernel-ppa/mainline/で提供しています。メサには、xorg-edgersなどのさまざまなPPAがあります。また、正確な8.0.3アップデートを準備しています。これにより、インテルグラフィックスのいくつかのロックアップが修正されると考えられます。

いずれにせよ、動作するバージョンを見つけたときだけに止まらないでください。作業中のバージョンと壊れたバージョンの間にある他のバージョンを試してください。ブラケットを2つの隣接するバージョンに絞り込むことができれば、開発者がどのパッチでリグレッションを引き起こしたかを特定するのに非常に役立ちます。

貢献する

トラブルシューティングを行うと、エラーを発見したり、スクリプトやドキュメントの改善を思い付く場合があります。これらへの貢献は大歓迎です。ウィキドキュメントを使って、先に進んで編集してください!少なくとも年に1回は更新を試みますが、常にそれに慣れるわけではありません。次のページにアクセスする人は、それらを改善するためのあなたの努力に確かに感謝します。

スクリプト自体の変更についても、大歓迎です。パッチ、bzrまたはgitブランチ、またはスクリプトのコピーなど、快適な変更を送ってください。多くの変更を行う予定の場合は、マージプロポーザルを含むbzrブランチが推奨されます。これを行う方法のチュートリアルは、code.launchpad.netで入手できます。質問がある場合は、IRCで遠慮なく教えてください。

または、コーディングを掘り下げる準備ができていないが、エラーやより多くの機能が必要な領域にフラグを付けたい場合は、通常の方法でバグレポートを提出できます(ubuntu-bug xdiagnose)。

クイックフィックス

上記のデバッグのいずれにも興味がない場合は、ランダムなヒントをいくつか示します。

プロプライエタリドライバーの場合は、システムから完全にアンインストールしてパージし、最初から再インストールしてみてください。これは残念ながら多くのバグを「解決」します...

FOSSドライバーについては、さまざまなカーネルスイッチを試してみてください。3D /メサのバグについては、さまざまな設定を微調整するためのdriconfもあります。

最終的に

最後に、1つの要求...上記のような少なくとも少しの調査が完了するまで、「ランダムなフリーズ」に関するバグレポートをLaunchpadに提出しないでください。それ以外の場合は、ノイズに追加されます。

私たちはよく研究されたバグレポートを探し出そうとします。私たちは、これらの費用を負担して、最終的にはディストリビューションを実際に修正する可能性が高くなることがわかりました。


回答ありがとうございます。リンクされたトラブルシューティングフリーズWikiの作成者ですか?xdiagnose / workloadsスクリプトがそこに記載されているようです-私は編集しますが、あなたと同じようにそれを行うかどうかはわかりません。また、ここではradeontoolの使用について言及していませんが、wikiで言及されています。私の場合でもradeontoolを使用する必要がありますか?
阿部

また、すべてのスクリプトをxdiagnose / workloadsで実行し、アスタリスクを付けたものから順番に実行するスクリプトは役に立ちますか?最後に、変更を送信する方法はどこで確認できますか?
阿部

これが私が最初に見つけたバグだと思います(do_chws_loopとdo_glx_loopにはwmctrlが必要です、do_glx_loopにはglxgearsが必要ですが、どちらのスクリプトにも「必要なものをテストしてインストールする機能が含まれています」。READMEで説明されています。私はおそらくそのような機能を追加し始めることができますが、最初にバグを提出してからそれを修正する必要がありますか?そして、もしif ... else ...の5行が必要なのですか?または、「推奨される方法」はありますか?これは、スクリプトをrootとして実行する必要があることを意味しますか?...なぜ「実行」引数が必要なのですか?すべての質問で申し訳ありませんが、できる限りお手伝いしたいと思います。
阿部

確かに、問題ありません。これらのポイントをカバーするように回答を更新します。
ブライス

3つ目の質問セットについて。はい、スクリプトに必要なものをテストしてもらうと、私のTODOリストに載っています。if ... elseブロックは確かに良い出発点です。結局のところ、ユーザーがGUIからスクリプトを実行できるようにしたいので、ユーザーが要件をGUIに「伝達」して、ユーザーが要件を持たない場合にそれらをグレー表示できるようにしたいと考えています。しかし、私はそれを実行できるようになるまでには長い道のりがあります。そのため、コマンドラインを確認するだけで開始できます。
ブライス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.