失敗したamdgpuカーネルモジュールを再起動する方法

失敗したamdgpuカーネルモジュールを再起動する方法

グラフィックカードが時々クラッシュする。迷惑ですが、私はこれを監督しています。通常、グラフィックを再起動するsudo systemctl restart lightdm.serviceか、必要に応じてシステム全体を再起動します。

この特別なケースではsystemctl通話が中断され、再起動したくない機械で長く実行されているタスクがあるからです。

競合は次dmesgのように記録されます。

[944520.212254] Call Trace:
[944520.212256]  [<ffffffff818384d5>] schedule+0x35/0x80
[944520.212257]  [<ffffffff8183b625>] schedule_timeout+0x1b5/0x270
[944520.212280]  [<ffffffffc0235244>] ? dce_v6_0_program_watermarks+0x514/0x720 [amdgpu]
[944520.212282]  [<ffffffffc0196d2c>] kcl_fence_default_wait+0x1cc/0x260 [amdkcl]
[944520.212287]  [<ffffffff815b4f50>] ? fence_free+0x20/0x20

amdgpuモジュールがクラッシュしたようです。再起動したいので試してみました。

sudo modprobe -r amdgpu
modprobe: FATAL: Module amdgpu is in use.

誰が使っているのか調べようamdgpuとしたら

lsmod | grep amdgpu
amdgpu               2129920  7
amdttm                102400  1 amdgpu
amdkcl                 32768  1 amdgpu
i2c_algo_bit           16384  1 amdgpu
drm_kms_helper        155648  1 amdgpu
drm                   364544  10 drm_kms_helper,amdgpu,amdkcl,amdttm

このモジュールを使用する基本的に7つの「モノ」がありますが、どのようにしてモジュールを削除するのかわかりませんamdgpu

質問:システムを再起動せずにモジュールを再ロードするための合理的な方法はありますか?それとも私のビデオを再インポートするより良い方法はありますか?

ベストアンサー1

@Chris Stryczynskiが言ったように、sudo cat /sys/kernel/debug/dri/N/amdgpu_gpu_recoverこれはamdgpuカーネルモジュールを再ロードする正しい方法であるか、カーネルパラメータでシステムをamdgpu.gpu_recovery=1起動してクラッシュ時に自動的にリセットすることができます。

ただし、ディスプレイサーバー(XorgまたはWayland)はグラフィックスタックを再初期化する必要があり、デスクトップ環境ではこれを実行できないため、これらのオプションはあまり役に立ちません。 (まだ実装されていません。)

gpu_recoveryカーネルパラメータを使用すると、ジョブを保存してから表示されなくても再起動できます。

おすすめ記事