Kurztipp: amdgpu-Freezes mit Steam unter Pop!_OS 22.04
Kürzlich ist mir aufgefallen, dass die gesamte grafische Oberfläche nach einigen wenigen Sekunden abstürzt, sobald ein Spiel über Steam gestreamt wird - beispielsweise über eine Steam Link- oder Apple TV-Box.
Ich benutze Pop!_OS in der Version 22.04 LTS, der verwendete Kernel war 6.2.6-76060206 - aber die älteren Version 6.1 und 6.0 scheinen betroffen zu sein.
Das Ganze ist unabhängig vom gestarteten Spiel reproduizierbar und wird etwaig im Protokoll dokumentiert:
1[drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring comp_1.2.0 timeout, signaled seq=30, emitted seq=32
2[drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process LiS-Win64-Shipp pid 84780 thread LiS-Win64-:cs0 pid 84847
3[ +0,000308] amdgpu 0000:2d:00.0: amdgpu: GPU reset begin!
4[ +0,054467] [drm:amdgpu_device_ip_suspend_phase2 [amdgpu]] *ERROR* suspend of IP block <vce_v4_0> failed -22
5[ +0,092833] [drm] psp gfx command UNLOAD_TA(0x2) failed and response status is (0x117)
6[ +0,028231] amdgpu 0000:2d:00.0: amdgpu: BACO reset
7[ +0,556223] amdgpu 0000:2d:00.0: amdgpu: GPU reset succeeded, trying to resume
8[ +0,000197] [drm] PCIE GART of 512M enabled.
9[ +0,000002] [drm] PTB located at 0x000000F400000000
10[ +0,000050] [drm] VRAM is lost due to GPU reset!
11[ +0,000000] [drm] PSP is resuming...
12[ +0,187570] [drm] reserve 0x400000 from 0xf5fec00000 for PSP TMR
13[ +0,116934] [drm] kiq ring mec 2 pipe 1 q 0
14[ +0,021896] [drm] UVD and UVD ENC initialized successfully.
15[ +0,099689] [drm] VCE initialized successfully.
16[ +0,000010] amdgpu 0000:2d:00.0: amdgpu: ring gfx uses VM inv eng 0 on hub 0
17[ +0,000002] amdgpu 0000:2d:00.0: amdgpu: ring gfx_low uses VM inv eng 1 on hub 0
18[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring gfx_high uses VM inv eng 4 on hub 0
19[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 5 on hub 0
20[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 6 on hub 0
21[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 7 on hub 0
22[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 8 on hub 0
23[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 9 on hub 0
24[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 10 on hub 0
25[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 11 on hub 0
26[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 12 on hub 0
27[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring kiq_2.1.0 uses VM inv eng 13 on hub 0
28[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: ring sdma0 uses VM inv eng 0 on hub 1
29[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring page0 uses VM inv eng 1 on hub 1
30[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring sdma1 uses VM inv eng 4 on hub 1
31[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: ring page1 uses VM inv eng 5 on hub 1
32[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring uvd_0 uses VM inv eng 6 on hub 1
33[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring uvd_enc_0.0 uses VM inv eng 7 on hub 1
34[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring uvd_enc_0.1 uses VM inv eng 8 on hub 1
35[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: ring vce0 uses VM inv eng 9 on hub 1
36[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring vce1 uses VM inv eng 10 on hub 1
37[ +0,000001] amdgpu 0000:2d:00.0: amdgpu: ring vce2 uses VM inv eng 11 on hub 1
38[ +0,001953] amdgpu 0000:2d:00.0: amdgpu: recover vram bo from shadow start
39[ +0,000028] amdgpu 0000:2d:00.0: amdgpu: recover vram bo from shadow done
40[ +0,000017] [drm] Skip scheduling IBs!
41[ +0,000000] amdgpu 0000:2d:00.0: amdgpu: GPU reset(2) succeeded!
42...[ +0,000000] [drm] Skip scheduling IBs!
43[ +0,420667] rfkill: input handler enabled
44[ +0,090733] [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
Abhilft schaffte das Installieren und Verwenden des Hardware Enablement-Kernels:
1# apt-get install linux-image-generic-hwe-22.04
Dieser benutzt die ältere Version 5.19, in welcher der Treiber weniger fehlerbehaftet zu sein scheint. Seit Kernel 6.0 scheint es generell mit dem amdgpu
-Treibermodul nicht aufhören wollende Probleme zu geben.
Damit Pop!_OS auch den älteren Kernel standardmäßig verwendet, hilft gemäß Dokumentation das folgende Kommando:
1# kernelstub -v -k /boot/vmlinuz-5.19.0-46-generic -i /boot/initrd.img-5.19.0-46-generic
Ansonsten muss bei jedem Boot die Leertaste gedrückt werden, um das Bootmenü aufzurufen.