[PATCH i-g-t 2/2] benchmarks/gem_wsim: re-arm ticks_delta before batch submission

Marcin Bernatowicz <[email protected]> Tue, 28 Jul 2026 12:26:59 +0200
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
Write ~0u to ticks_delta for fixed-duration batches before submit.
~0u is a safe value for potential stale cache data from previous batches.

Fixes observed verification failure under looped runs:

gem_wsim -w "1.RCS.5000.0.0,1.BCS.5000.0.0,1.CCS.5000.0.1,1.VCS.5000.0.0" -V -r 4000

CRITICAL: Failed assertion: w->duration.requested_ticks <= ~w->xe.data->spin.ticks_delta
CRITICAL: error: 96000 > 2

Signed-off-by: Marcin Bernatowicz <[email protected]>
Cc: Adam Miszczak <[email protected]>
Cc: Kamil Konieczny <[email protected]>
Cc: Lukasz Laguna <[email protected]>
---
 benchmarks/gem_wsim.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c
index 8be44d0c8..a66fd07d4 100644
--- a/benchmarks/gem_wsim.c
+++ b/benchmarks/gem_wsim.c
@@ -2663,7 +2663,11 @@ static void do_xe_exec(struct workload *wrk, struct w_step *w)
 				  .addr = w->xe.exec.address,
 				  .preempt = (w->preempt_us > 0),
 				  .ctx_ticks = w->duration.requested_ticks);
+	} else if (!w->duration.unbound) {
+		/* Reset sentinel for fixed-duration to prevent stale reads */
+		w->xe.data->spin.ticks_delta = ~0u;
 	}
+
 	xe_exec(fd, &w->xe.exec);
 }
 
-- 
2.43.0