Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe: Increase global invalidation timeout to 1000us
@ 2025-09-12 22:31 Kenneth Graunke
  2025-09-12 23:45 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Kenneth Graunke @ 2025-09-12 22:31 UTC (permalink / raw)
  To: intel-xe; +Cc: Kenneth Graunke, stable, Maarten Lankhorst

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: c0114fdf6d4a ("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>
---
 drivers/gpu/drm/xe/xe_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

This fixes my desktop which has been broken since 6.15.  Given that
https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/6097 was recently
filed and they seem to need a timeout of 2000 (and are having somewhat
different issues), maybe more work's needed here...but I figured I'd
send out the fix for my system and let xe folks figure out what they'd
like to do.  Thanks :)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index a4d12ee7d575..6339b8800914 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1064,7 +1064,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);
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-10-09 16:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-12 22:31 [PATCH] drm/xe: Increase global invalidation timeout to 1000us Kenneth Graunke
2025-09-12 23:45 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
2025-09-15 16:24 ` ✗ CI.checkpatch: warning for drm/xe: Increase global invalidation timeout to 1000us (rev2) Patchwork
2025-09-15 16:25 ` ✓ CI.KUnit: success " Patchwork
2025-09-15 17:01 ` ✓ Xe.CI.BAT: " Patchwork
2025-09-15 21:40 ` ✗ Xe.CI.Full: failure " Patchwork
2025-10-07  2:21 ` [PATCH] drm/xe: Increase global invalidation timeout to 1000us Kenneth Graunke
2025-10-09 16:20   ` Maarten Lankhorst
2025-10-09 14:33 ` Lin, Shuicheng
2025-10-09 15:00   ` Lucas De Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox