]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Increase global invalidation timeout to 1000us
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 12 Sep 2025 22:31:45 +0000 (15:31 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 13 Oct 2025 20:02:50 +0000 (13:02 -0700)
The previous timeout of 500us seems to be too small; panning the map in
the Roll20 VTT in Firefox on a KDE/Wayland desktop reliably triggered
timeouts within a few seconds of usage, causing the monitor to freeze
and the following to be printed to dmesg:

[Jul30 13:44] xe 0000:03:00.0: [drm] *ERROR* GT0: Global invalidation timeout
[Jul30 13:48] xe 0000:03:00.0: [drm] *ERROR* [CRTC:82:pipe A] flip_done timed out

I haven't hit a single timeout since increasing it to 1000us even after
several multi-hour testing sessions.

Fixes: 0dd2dd0182bc ("drm/xe: Move DSB l2 flush to a more sensible place")
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5710
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: stable@vger.kernel.org
Cc: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Link: https://lore.kernel.org/r/20250912223254.147940-1-kenneth@whitecape.org
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit 146046907b56578263434107f5a7d5051847c459)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_device.c

index 2883b39c9b37a1b6d61bd39620a02aff95d1c8ff..34d33965eac24c867e333e8eb21f88788ce36e83 100644 (file)
@@ -1070,7 +1070,7 @@ void xe_device_l2_flush(struct xe_device *xe)
        spin_lock(&gt->global_invl_lock);
 
        xe_mmio_write32(&gt->mmio, XE2_GLOBAL_INVAL, 0x1);
-       if (xe_mmio_wait32(&gt->mmio, XE2_GLOBAL_INVAL, 0x1, 0x0, 500, NULL, true))
+       if (xe_mmio_wait32(&gt->mmio, XE2_GLOBAL_INVAL, 0x1, 0x0, 1000, NULL, true))
                xe_gt_err_once(gt, "Global invalidation timeout\n");
 
        spin_unlock(&gt->global_invl_lock);