Seems like I resolved the problem (so far one day without any crash, even with VA-API enabled).
My solution: add this kernel param:
i915.request_timeout_ms=60000
If it still doesn’t work, add this:
i915.request_timeout_ms=60000 intel_iommu=off i915.reset=0 i915.enable_psr=0 i915.enable_fbc=0 i915.disable_power_well=1 i915.enable_guc=0
If still doesn’t work, run this on boot:
echo 400 | sudo tee /sys/class/drm/card0/gt_min_freq_mhz;
echo 10000 | sudo tee /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms;
echo 10000 | sudo tee /sys/class/drm/card0/engine/rcs0/heartbeat_interval_ms;
echo 1000 | sudo tee /sys/class/drm/card0/engine/rcs0/stop_timeout_ms;
Old answer
I’ve been working on this issue for over a month now. What I observed:
- It hangs more frequently if you use HW acceleration decoder (va-api for example)
- Disable GuC Submission does make it a bit stable (add kernel param
i915.enable_guc=2). See Intel graphics - ArchWiki - I remap Alt+F12 to trigger a session logout with
gnome-session-quit --forcecommand, so whenever the GPU is hangs, I don’t need to restart the whole computer. - Since the logout method above works fine, I suspect that GNOME does not handle GPU context reset correctly. Let’s hopt that it will be fixed by GNOME.
- I added these kernel param:
915.enable_psr=0 i915.enable_fbc=0 i915.disable_power_well=1 intel_iommu=igfx_off. It seems to be a bit more stable.
My system: Framework laptop i7-1260P, 16GBx2 RAM, Samsung SSD 980 Pro 1TB, Fedora 36 with stock kernel 5.18.17
P/s: I tried Xanmod kernel 5.19, nothing changes.