[igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser

Jason Ekstrand jason at jlekstrand.net
Sun Jul 11 03:52:04 UTC 2021


The command parser stalls waiting for the batch to be idle.  If it's
blocked by a spinner, execbuf will timeout.

Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
---
 tests/i915/gem_exec_reloc.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
index d54473341..0c2f389ea 100644
--- a/tests/i915/gem_exec_reloc.c
+++ b/tests/i915/gem_exec_reloc.c
@@ -415,6 +415,11 @@ static void many_active(int i915, const intel_ctx_t *ctx, unsigned engine)
 	const uint64_t max = 2048;
 	unsigned long count = 256;
 
+	/* Relocating in an active batch buffer doesn't work with the
+	 * command parser
+	 */
+	igt_require(!gem_engine_has_cmdparser(i915, &ctx->cfg, engine));
+
 	igt_until_timeout(2) {
 		uint64_t required, total;
 
@@ -488,6 +493,11 @@ static void wide_active(int i915, const intel_ctx_t *ctx, unsigned engine)
 	const uint64_t max = gem_aperture_size(i915) / 4096 / 2;
 	unsigned long count = 256;
 
+	/* Relocating in an active batch buffer doesn't work with the
+	 * command parser
+	 */
+	igt_require(!gem_engine_has_cmdparser(i915, &ctx->cfg, engine));
+
 	igt_until_timeout(2) {
 		uint64_t required, total;
 
@@ -517,6 +527,11 @@ static void active_spin(int fd, const intel_ctx_t *ctx, unsigned engine)
 	struct drm_i915_gem_execbuffer2 execbuf;
 	igt_spin_t *spin;
 
+	/* Relocating in an active batch buffer doesn't work with the
+	 * command parser
+	 */
+	igt_require(!gem_engine_has_cmdparser(fd, &ctx->cfg, engine));
+
 	spin = igt_spin_new(fd,
 			    .ctx = ctx,
 			    .engine = engine,
-- 
2.31.1



More information about the igt-dev mailing list