All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks
@ 2021-07-11  3:51 Jason Ekstrand
  2021-07-11  3:51 ` [igt-dev] [PATCH i-g-t 1/6] lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper Jason Ekstrand
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:51 UTC (permalink / raw)
  To: igt-dev

This patch series does two things primarily:

 1. Rework the way we check for the command parser.  Previously, we had a
    parameter that claimed to check per-engine but the engine was ignored.
    With this series, we now have a version which doesn't take an engine
    for general "Is there a command parser at all?" checks and one which
    takes a context config and an engine specifier and provides an accurate
    check.

 2. Disable tests which don't work with a synchronous command parser when
    the parser is active.  This will maintain as much coverage as possible
    while allowing us to move the command parser back to synchronous.  In
    each case, the test is actively attempting to run a batch while the
    batch buffer is stuck on a spinner.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>

Jason Ekstrand (6):
  lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper
  tests/i915/gem_eio: Convert to intel_ctx_t
  tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests
  i915: Improve the precision of command parser checks
  tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
  tests/i915/gem_exec_reloc: Don't attempt active relocations with the
    command parser

 lib/i915/gem_submission.c        | 38 ++++++++++++++++++--
 lib/i915/gem_submission.h        |  8 +++--
 lib/igt_dummyload.c              | 15 +++++---
 lib/intel_ctx.c                  | 42 +++++++++++++++--------
 lib/intel_ctx.h                  |  1 +
 tests/i915/gem_ctx_persistence.c | 43 ++++++++++++++---------
 tests/i915/gem_eio.c             | 59 +++++++++++++++++---------------
 tests/i915/gem_exec_balancer.c   |  2 +-
 tests/i915/gem_exec_reloc.c      | 15 ++++++++
 tests/i915/gem_exec_schedule.c   | 10 ++++--
 tests/i915/gen7_exec_parse.c     |  2 +-
 tests/i915/gen9_exec_parse.c     |  2 +-
 tests/i915/i915_hangman.c        |  2 +-
 13 files changed, 163 insertions(+), 76 deletions(-)

-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 1/6] lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
@ 2021-07-11  3:51 ` Jason Ekstrand
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 2/6] tests/i915/gem_eio: Convert to intel_ctx_t Jason Ekstrand
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:51 UTC (permalink / raw)
  To: igt-dev

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
---
 lib/intel_ctx.c | 42 +++++++++++++++++++++++++++---------------
 lib/intel_ctx.h |  1 +
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/lib/intel_ctx.c b/lib/intel_ctx.c
index 5495fa764..f28c15544 100644
--- a/lib/intel_ctx.c
+++ b/lib/intel_ctx.c
@@ -267,6 +267,32 @@ const intel_ctx_t *intel_ctx_create_all_physical(int fd)
 	return intel_ctx_create(fd, &cfg);
 }
 
+/**
+ * intel_ctx_cfg_engine_class:
+ * @cfg: an intel_ctx_cfg_t
+ * @engine: an engine specifier
+ *
+ * Returns the class for the given engine.
+ */
+int intel_ctx_cfg_engine_class(const intel_ctx_cfg_t *cfg, unsigned int engine)
+{
+	if (cfg->load_balance) {
+		if (engine == 0) {
+			/* This is our virtual engine */
+			return cfg->engines[0].engine_class;
+		} else {
+			/* This is a physical engine */
+			igt_assert(engine - 1 < cfg->num_engines);
+			return cfg->engines[engine - 1].engine_class;
+		}
+	} else if (cfg->num_engines > 0) {
+		igt_assert(engine < cfg->num_engines);
+		return cfg->engines[engine].engine_class;
+	} else {
+		return gem_execbuf_flags_to_engine_class(engine);
+	}
+}
+
 /**
  * intel_ctx_destroy:
  * @fd: open i915 drm file descriptor
@@ -292,19 +318,5 @@ void intel_ctx_destroy(int fd, const intel_ctx_t *ctx)
  */
 unsigned int intel_ctx_engine_class(const intel_ctx_t *ctx, unsigned int engine)
 {
-	if (ctx->cfg.load_balance) {
-		if (engine == 0) {
-			/* This is our virtual engine */
-			return ctx->cfg.engines[0].engine_class;
-		} else {
-			/* This is a physical engine */
-			igt_assert(engine - 1 < ctx->cfg.num_engines);
-			return ctx->cfg.engines[engine - 1].engine_class;
-		}
-	} else if (ctx->cfg.num_engines) {
-		igt_assert(engine < ctx->cfg.num_engines);
-		return ctx->cfg.engines[engine].engine_class;
-	} else {
-		return gem_execbuf_flags_to_engine_class(engine);
-	}
+	return intel_ctx_cfg_engine_class(&ctx->cfg, engine);
 }
diff --git a/lib/intel_ctx.h b/lib/intel_ctx.h
index d4cb435a7..9649f6d96 100644
--- a/lib/intel_ctx.h
+++ b/lib/intel_ctx.h
@@ -52,6 +52,7 @@ typedef struct intel_ctx_cfg {
 
 intel_ctx_cfg_t intel_ctx_cfg_for_engine(unsigned int class, unsigned int inst);
 intel_ctx_cfg_t intel_ctx_cfg_all_physical(int fd);
+int intel_ctx_cfg_engine_class(const intel_ctx_cfg_t *cfg, unsigned int engine);
 
 /**
  * intel_ctx_t:
-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 2/6] tests/i915/gem_eio: Convert to intel_ctx_t
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
  2021-07-11  3:51 ` [igt-dev] [PATCH i-g-t 1/6] lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper Jason Ekstrand
@ 2021-07-11  3:52 ` Jason Ekstrand
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 3/6] tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests Jason Ekstrand
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:52 UTC (permalink / raw)
  To: igt-dev

We're going to need the context cfg shortly to properly check for the
command parser.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
---
 tests/i915/gem_eio.c | 57 +++++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 27 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 50d250f38..b03ddab54 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -174,10 +174,11 @@ static int __gem_wait(int fd, uint32_t handle, int64_t timeout)
 	return err;
 }
 
-static igt_spin_t * __spin_poll(int fd, uint32_t ctx, unsigned long flags)
+static igt_spin_t * __spin_poll(int fd, const intel_ctx_t *ctx,
+				unsigned long flags)
 {
 	struct igt_spin_factory opts = {
-		.ctx_id = ctx,
+		.ctx = ctx,
 		.engine = flags,
 		.flags = IGT_SPIN_NO_PREEMPTION | IGT_SPIN_FENCE_OUT,
 	};
@@ -205,7 +206,8 @@ static void __spin_wait(int fd, igt_spin_t *spin)
 	}
 }
 
-static igt_spin_t * spin_sync(int fd, uint32_t ctx, unsigned long flags)
+static igt_spin_t * spin_sync(int fd, const intel_ctx_t *ctx,
+			      unsigned long flags)
 {
 	igt_spin_t *spin = __spin_poll(fd, ctx, flags);
 
@@ -364,7 +366,7 @@ static void __test_banned(int fd)
 		}
 
 		/* Trigger a reset, making sure we are detected as guilty */
-		hang = spin_sync(fd, 0, 0);
+		hang = spin_sync(fd, intel_ctx_0(fd), 0);
 		trigger_reset(fd);
 		igt_spin_free(fd, hang);
 
@@ -439,7 +441,7 @@ static void test_wait(int fd, unsigned int flags, unsigned int wait)
 	else
 		igt_require(i915_reset_control(fd, true));
 
-	hang = spin_sync(fd, 0, I915_EXEC_DEFAULT);
+	hang = spin_sync(fd, intel_ctx_0(fd), I915_EXEC_DEFAULT);
 
 	igt_debugfs_dump(fd, "i915_engine_info");
 	check_wait(fd, hang->handle, wait, NULL);
@@ -500,7 +502,7 @@ static void test_inflight(int fd, unsigned int wait)
 		igt_debug("Starting %s on engine '%s'\n", __func__, e->name);
 		igt_require(i915_reset_control(fd, false));
 
-		hang = spin_sync(fd, 0, eb_ring(e));
+		hang = spin_sync(fd, intel_ctx_0(fd), eb_ring(e));
 		obj[0].handle = hang->handle;
 
 		memset(&execbuf, 0, sizeof(execbuf));
@@ -557,7 +559,7 @@ static void test_inflight_suspend(int fd)
 	obj[1].handle = gem_create(fd, 4096);
 	gem_write(fd, obj[1].handle, 0, &bbe, sizeof(bbe));
 
-	hang = spin_sync(fd, 0, 0);
+	hang = spin_sync(fd, intel_ctx_0(fd), 0);
 	obj[0].handle = hang->handle;
 
 	memset(&execbuf, 0, sizeof(execbuf));
@@ -588,13 +590,14 @@ static void test_inflight_suspend(int fd)
 	close(fd);
 }
 
-static uint32_t context_create_safe(int i915)
+static const intel_ctx_t *context_create_safe(int i915)
 {
 	struct drm_i915_gem_context_param param;
+	const intel_ctx_t *ctx = intel_ctx_create(i915, NULL);
 
 	memset(&param, 0, sizeof(param));
 
-	param.ctx_id = gem_context_create(i915);
+	param.ctx_id = ctx->id;
 	param.param = I915_CONTEXT_PARAM_BANNABLE;
 	gem_context_set_param(i915, &param);
 
@@ -602,7 +605,7 @@ static uint32_t context_create_safe(int i915)
 	param.value = 1;
 	gem_context_set_param(i915, &param);
 
-	return param.ctx_id;
+	return ctx;
 }
 
 static void test_inflight_contexts(int fd, unsigned int wait)
@@ -619,7 +622,7 @@ static void test_inflight_contexts(int fd, unsigned int wait)
 		struct drm_i915_gem_execbuffer2 execbuf;
 		unsigned int count;
 		igt_spin_t *hang;
-		uint32_t ctx[64];
+		const intel_ctx_t *ctx[64];
 		int fence[64];
 
 		fd = reopen_device(parent_fd);
@@ -637,7 +640,7 @@ static void test_inflight_contexts(int fd, unsigned int wait)
 		obj[1].handle = gem_create(fd, 4096);
 		gem_write(fd, obj[1].handle, 0, &bbe, sizeof(bbe));
 
-		hang = spin_sync(fd, 0, eb_ring(e));
+		hang = spin_sync(fd, intel_ctx_0(fd), eb_ring(e));
 		obj[0].handle = hang->handle;
 
 		memset(&execbuf, 0, sizeof(execbuf));
@@ -647,7 +650,7 @@ static void test_inflight_contexts(int fd, unsigned int wait)
 
 		count = 0;
 		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
-			execbuf.rsvd1 = ctx[n];
+			execbuf.rsvd1 = ctx[n]->id;
 			if (__gem_execbuf_wr(fd, &execbuf))
 				break; /* small shared ring */
 			fence[n] = execbuf.rsvd2 >> 32;
@@ -669,7 +672,7 @@ static void test_inflight_contexts(int fd, unsigned int wait)
 		trigger_reset(fd);
 
 		for (unsigned int n = 0; n < ARRAY_SIZE(ctx); n++)
-			gem_context_destroy(fd, ctx[n]);
+			intel_ctx_destroy(fd, ctx[n]);
 
 		close(fd);
 	}
@@ -691,7 +694,7 @@ static void test_inflight_external(int fd)
 	fence = igt_cork_plug(&cork, fd);
 
 	igt_require(i915_reset_control(fd, false));
-	hang = __spin_poll(fd, 0, 0);
+	hang = __spin_poll(fd, intel_ctx_0(fd), 0);
 
 	memset(&obj, 0, sizeof(obj));
 	obj.handle = gem_create(fd, 4096);
@@ -739,7 +742,7 @@ static void test_inflight_internal(int fd, unsigned int wait)
 	fd = reopen_device(fd);
 	igt_require(gem_has_exec_fence(fd));
 	igt_require(i915_reset_control(fd, false));
-	hang = spin_sync(fd, 0, 0);
+	hang = spin_sync(fd, intel_ctx_0(fd), 0);
 
 	memset(obj, 0, sizeof(obj));
 	obj[0].handle = hang->handle;
@@ -774,7 +777,7 @@ static void test_inflight_internal(int fd, unsigned int wait)
 	close(fd);
 }
 
-static void reset_stress(int fd, uint32_t ctx0,
+static void reset_stress(int fd, const intel_ctx_t *ctx0,
 			 const char *name, unsigned int engine,
 			 unsigned int flags)
 {
@@ -799,7 +802,7 @@ static void reset_stress(int fd, uint32_t ctx0,
 
 	igt_stats_init(&stats);
 	igt_until_timeout(5) {
-		uint32_t ctx = context_create_safe(fd);
+		const intel_ctx_t *ctx = context_create_safe(fd);
 		igt_spin_t *hang;
 		unsigned int i;
 
@@ -814,11 +817,11 @@ static void reset_stress(int fd, uint32_t ctx0,
 		 */
 		hang = spin_sync(fd, ctx0, engine);
 
-		execbuf.rsvd1 = ctx;
+		execbuf.rsvd1 = ctx->id;
 		for (i = 0; i < max; i++)
 			gem_execbuf(fd, &execbuf);
 
-		execbuf.rsvd1 = ctx0;
+		execbuf.rsvd1 = ctx0->id;
 		for (i = 0; i < max; i++)
 			gem_execbuf(fd, &execbuf);
 
@@ -836,17 +839,17 @@ static void reset_stress(int fd, uint32_t ctx0,
 		 * Verify that we are able to submit work after unwedging from
 		 * both contexts.
 		 */
-		execbuf.rsvd1 = ctx;
+		execbuf.rsvd1 = ctx->id;
 		for (i = 0; i < max; i++)
 			gem_execbuf(fd, &execbuf);
 
-		execbuf.rsvd1 = ctx0;
+		execbuf.rsvd1 = ctx0->id;
 		for (i = 0; i < max; i++)
 			gem_execbuf(fd, &execbuf);
 
 		gem_sync(fd, obj.handle);
 		igt_spin_free(fd, hang);
-		gem_context_destroy(fd, ctx);
+		intel_ctx_destroy(fd, ctx);
 	}
 	check_wait_elapsed(name, fd, &stats);
 	igt_stats_fini(&stats);
@@ -859,12 +862,12 @@ static void reset_stress(int fd, uint32_t ctx0,
  */
 static void test_reset_stress(int fd, unsigned int flags)
 {
-	uint32_t ctx0 = context_create_safe(fd);
+	const intel_ctx_t *ctx0 = context_create_safe(fd);
 
 	for_each_ring(e, fd)
 		reset_stress(fd, ctx0, e->name, eb_ring(e), flags);
 
-	gem_context_destroy(fd, ctx0);
+	intel_ctx_destroy(fd, ctx0);
 }
 
 /*
@@ -924,14 +927,14 @@ static void test_kms(int i915, igt_display_t *dpy)
 
 	test_inflight(i915, 0);
 	if (gem_has_contexts(i915)) {
-		uint32_t ctx = context_create_safe(i915);
+		const intel_ctx_t *ctx = context_create_safe(i915);
 
 		reset_stress(i915, ctx,
 			     "default", I915_EXEC_DEFAULT, 0);
 		reset_stress(i915, ctx,
 			     "default", I915_EXEC_DEFAULT, TEST_WEDGE);
 
-		gem_context_destroy(i915, ctx);
+		intel_ctx_destroy(i915, ctx);
 	}
 
 	*shared = 1;
-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 3/6] tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
  2021-07-11  3:51 ` [igt-dev] [PATCH i-g-t 1/6] lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper Jason Ekstrand
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 2/6] tests/i915/gem_eio: Convert to intel_ctx_t Jason Ekstrand
@ 2021-07-11  3:52 ` Jason Ekstrand
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks Jason Ekstrand
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:52 UTC (permalink / raw)
  To: igt-dev

We need this for proper cmdparser detection

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
---
 tests/i915/gem_ctx_persistence.c | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 142bac28e..f514e2b78 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -334,8 +334,9 @@ static void test_nonpersistent_hang(int i915, const intel_ctx_cfg_t *cfg,
 	igt_spin_free(i915, spin);
 }
 
-static void test_nohangcheck_hostile(int i915)
+static void test_nohangcheck_hostile(int i915, const intel_ctx_cfg_t *cfg)
 {
+	const struct intel_execution_engine2 *e;
 	int dir;
 
 	cleanup(i915);
@@ -350,15 +351,15 @@ static void test_nohangcheck_hostile(int i915)
 
 	igt_require(__enable_hangcheck(dir, false));
 
-	for_each_physical_ring(e, i915) {
+	for_each_ctx_cfg_engine(i915, cfg, e) {
 		int64_t timeout = reset_timeout_ms * NSEC_PER_MSEC;
-		uint32_t ctx = gem_context_create(i915);
+		const intel_ctx_t *ctx = intel_ctx_create(i915, cfg);
 		igt_spin_t *spin;
 
-		spin = igt_spin_new(i915, ctx,
-				    .engine = eb_ring(e),
+		spin = igt_spin_new(i915, .ctx = ctx,
+				    .engine = e->flags,
 				    .flags = IGT_SPIN_NO_PREEMPTION);
-		gem_context_destroy(i915, ctx);
+		intel_ctx_destroy(i915, ctx);
 
 		igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
 
@@ -369,8 +370,9 @@ static void test_nohangcheck_hostile(int i915)
 	close(dir);
 }
 
-static void test_nohangcheck_hang(int i915)
+static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
 {
+	const struct intel_execution_engine2 *e;
 	int dir;
 
 	cleanup(i915);
@@ -387,15 +389,15 @@ static void test_nohangcheck_hang(int i915)
 
 	igt_require(__enable_hangcheck(dir, false));
 
-	for_each_physical_ring(e, i915) {
+	for_each_ctx_cfg_engine(i915, cfg, e) {
 		int64_t timeout = reset_timeout_ms * NSEC_PER_MSEC;
-		uint32_t ctx = gem_context_create(i915);
+		const intel_ctx_t *ctx = intel_ctx_create(i915, cfg);
 		igt_spin_t *spin;
 
-		spin = igt_spin_new(i915, ctx,
-				    .engine = eb_ring(e),
+		spin = igt_spin_new(i915, .ctx = ctx,
+				    .engine = e->flags,
 				    .flags = IGT_SPIN_INVALID_CS);
-		gem_context_destroy(i915, ctx);
+		intel_ctx_destroy(i915, ctx);
 
 		igt_assert_eq(gem_wait(i915, spin->handle, &timeout), 0);
 
@@ -1131,6 +1133,7 @@ static void exit_handler(int sig)
 
 igt_main
 {
+	const intel_ctx_cfg_t empty_cfg = {};
 	struct {
 		const char *name;
 		void (*func)(int fd, const intel_ctx_cfg_t *cfg,
@@ -1182,9 +1185,9 @@ igt_main
 		test_userptr(i915);
 
 	igt_subtest("hostile")
-		test_nohangcheck_hostile(i915);
+		test_nohangcheck_hostile(i915, &empty_cfg);
 	igt_subtest("hang")
-		test_nohangcheck_hang(i915);
+		test_nohangcheck_hang(i915, &empty_cfg);
 
 	igt_subtest("heartbeat-stop")
 		test_noheartbeat_many(i915, 1, 0);
@@ -1204,7 +1207,6 @@ igt_main
 		for (test = tests; test->name; test++) {
 			igt_subtest_with_dynamic_f("legacy-engines-%s",
 						   test->name) {
-				const intel_ctx_cfg_t empty_cfg = {};
 				for_each_physical_ring(e, i915) {
 					igt_dynamic_f("%s", e->name) {
 						do_test(test->func, i915,
-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (2 preceding siblings ...)
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 3/6] tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests Jason Ekstrand
@ 2021-07-11  3:52 ` Jason Ekstrand
  2021-07-12 15:12   ` Daniel Vetter
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep() Jason Ekstrand
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:52 UTC (permalink / raw)
  To: igt-dev

The previous gem_has_cmdparser helper took an engine and did nothing
with it.  We delete the engine parameter and use the general helper for
the ALL_ENGINES cases.  For cases where we really do care about
something more precise, we add a version which takes an intel_ctx_cfg_t
and an engine specifier and is able to say whether or not that
particular engine has the command parser enabled.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
---
 lib/i915/gem_submission.c        | 38 ++++++++++++++++++++++++++++++--
 lib/i915/gem_submission.h        |  8 ++++---
 lib/igt_dummyload.c              | 15 ++++++++-----
 tests/i915/gem_ctx_persistence.c | 13 +++++++++--
 tests/i915/gem_eio.c             |  2 +-
 tests/i915/gem_exec_balancer.c   |  2 +-
 tests/i915/gen7_exec_parse.c     |  2 +-
 tests/i915/gen9_exec_parse.c     |  2 +-
 tests/i915/i915_hangman.c        |  2 +-
 9 files changed, 67 insertions(+), 17 deletions(-)

diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
index 60bedea83..f1af4f97c 100644
--- a/lib/i915/gem_submission.c
+++ b/lib/i915/gem_submission.c
@@ -215,7 +215,13 @@ void gem_test_all_engines(int i915)
 	close(i915);
 }
 
-int gem_cmdparser_version(int i915, uint32_t engine)
+/**
+ * gem_cmdparser_version:
+ * @i915: open i915 drm file descriptor
+ *
+ * Returns the command parser version
+ */
+int gem_cmdparser_version(int i915)
 {
 	int version = 0;
 	drm_i915_getparam_t gp = {
@@ -227,6 +233,34 @@ int gem_cmdparser_version(int i915, uint32_t engine)
 	return version;
 }
 
+/**
+ * gem_engine_has_cmdparser:
+ * @i915: open i915 drm file descriptor
+ * @class: an intel_ctx_cfg_t
+ * @engine: an engine specifier
+ *
+ * Returns true if the given engine has a command parser
+ */
+bool gem_engine_has_cmdparser(int i915, const intel_ctx_cfg_t *cfg,
+			      unsigned int engine)
+{
+	const int gen = intel_gen(intel_get_drm_devid(i915));
+	const int parser_version = gem_cmdparser_version(i915);
+	const int class = intel_ctx_cfg_engine_class(cfg, engine);
+
+	if (parser_version < 0)
+		return false;
+
+	if (gen == 7)
+		return true;
+
+	/* GFX version 9 BLT command parsing was added in parser version 10 */
+	if (gen == 9 && class == I915_ENGINE_CLASS_COPY && parser_version >= 10)
+		return true;
+
+	return false;
+}
+
 bool gem_has_blitter(int i915)
 {
 	unsigned int blt;
@@ -248,7 +282,7 @@ static bool gem_engine_has_immutable_submission(int i915, int class)
 	const int gen = intel_gen(intel_get_drm_devid(i915));
         int parser_version;
 
-	parser_version = gem_cmdparser_version(i915, 0);
+	parser_version = gem_cmdparser_version(i915);
 	if (parser_version < 0)
 		return false;
 
diff --git a/lib/i915/gem_submission.h b/lib/i915/gem_submission.h
index 44e6e3118..9b3e2a4e5 100644
--- a/lib/i915/gem_submission.h
+++ b/lib/i915/gem_submission.h
@@ -39,11 +39,13 @@ bool gem_has_guc_submission(int fd);
 bool gem_engine_has_mutable_submission(int fd, unsigned int engine);
 bool gem_class_has_mutable_submission(int fd, int class);
 
-int gem_cmdparser_version(int i915, uint32_t engine);
-static inline bool gem_has_cmdparser(int i915, uint32_t engine)
+int gem_cmdparser_version(int i915);
+static inline bool gem_has_cmdparser(int i915)
 {
-	return gem_cmdparser_version(i915, engine) > 0;
+	return gem_cmdparser_version(i915) > 0;
 }
+bool gem_engine_has_cmdparser(int i915, const intel_ctx_cfg_t *cfg,
+			      unsigned int engine);
 
 bool gem_has_blitter(int i915);
 void gem_require_blitter(int i915);
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 5354b9c2b..8a5ad5ee3 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -251,9 +251,11 @@ emit_recursive_batch(igt_spin_t *spin,
 	/* Allow ourselves to be preempted */
 	if (!(opts->flags & IGT_SPIN_NO_PREEMPTION))
 		*cs++ = MI_ARB_CHK;
-	if (opts->flags & IGT_SPIN_INVALID_CS &&
-	    !gem_has_cmdparser(fd, opts->engine))
-		*cs++ = 0xdeadbeef;
+	if (opts->flags & IGT_SPIN_INVALID_CS) {
+		igt_assert(opts->ctx);
+		if (!gem_engine_has_cmdparser(fd, &opts->ctx->cfg, opts->engine))
+			*cs++ = 0xdeadbeef;
+	}
 
 	/* Pad with a few nops so that we do not completely hog the system.
 	 *
@@ -432,8 +434,11 @@ igt_spin_factory(int fd, const struct igt_spin_factory *opts)
 		igt_require(gem_class_can_store_dword(fd, class));
 	}
 
-	if (opts->flags & IGT_SPIN_INVALID_CS)
-		igt_require(!gem_has_cmdparser(fd, opts->engine));
+	if (opts->flags & IGT_SPIN_INVALID_CS) {
+		igt_assert(opts->ctx);
+		igt_require(!gem_engine_has_cmdparser(fd, &opts->ctx->cfg,
+						      opts->engine));
+	}
 
 	spin = spin_create(fd, opts);
 
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index f514e2b78..c6db06b8b 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -373,6 +373,7 @@ static void test_nohangcheck_hostile(int i915, const intel_ctx_cfg_t *cfg)
 static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
 {
 	const struct intel_execution_engine2 *e;
+	int testable_engines = 0;
 	int dir;
 
 	cleanup(i915);
@@ -382,7 +383,11 @@ static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
 	 * we forcibly terminate that context.
 	 */
 
-	igt_require(!gem_has_cmdparser(i915, ALL_ENGINES));
+	for_each_ctx_cfg_engine(i915, cfg, e) {
+		if (!gem_engine_has_cmdparser(i915, cfg, e->flags))
+			testable_engines++;
+	}
+	igt_require(testable_engines);
 
 	dir = igt_params_open(i915);
 	igt_require(dir != -1);
@@ -391,9 +396,13 @@ static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
 
 	for_each_ctx_cfg_engine(i915, cfg, e) {
 		int64_t timeout = reset_timeout_ms * NSEC_PER_MSEC;
-		const intel_ctx_t *ctx = intel_ctx_create(i915, cfg);
+		const intel_ctx_t *ctx;
 		igt_spin_t *spin;
 
+		if (!gem_engine_has_cmdparser(i915, cfg, e->flags))
+			continue;
+
+		ctx = intel_ctx_create(i915, cfg);
 		spin = igt_spin_new(i915, .ctx = ctx,
 				    .engine = e->flags,
 				    .flags = IGT_SPIN_INVALID_CS);
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index b03ddab54..d6a5e23bd 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -183,7 +183,7 @@ static igt_spin_t * __spin_poll(int fd, const intel_ctx_t *ctx,
 		.flags = IGT_SPIN_NO_PREEMPTION | IGT_SPIN_FENCE_OUT,
 	};
 
-	if (!gem_has_cmdparser(fd, opts.engine) &&
+	if (!gem_engine_has_cmdparser(fd, &ctx->cfg, opts.engine) &&
 	    intel_gen(intel_get_drm_devid(fd)) != 6)
 		opts.flags |= IGT_SPIN_INVALID_CS;
 
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index 070f392b1..2f98950bb 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -2257,7 +2257,7 @@ static void hangme(int i915)
 			flags = IGT_SPIN_FENCE_IN |
 				IGT_SPIN_FENCE_OUT |
 				IGT_SPIN_NO_PREEMPTION;
-			if (!gem_has_cmdparser(i915, ALL_ENGINES))
+			if (!gem_engine_has_cmdparser(i915, &ctx->cfg, 0))
 				flags |= IGT_SPIN_INVALID_CS;
 			for (int j = 0; j < ARRAY_SIZE(c->spin); j++)  {
 				c->spin[j] = __igt_spin_new(i915, .ctx = ctx,
diff --git a/tests/i915/gen7_exec_parse.c b/tests/i915/gen7_exec_parse.c
index 8326fd5c8..67324061d 100644
--- a/tests/i915/gen7_exec_parse.c
+++ b/tests/i915/gen7_exec_parse.c
@@ -463,7 +463,7 @@ igt_main
 		fd = drm_open_driver(DRIVER_INTEL);
 		igt_require_gem(fd);
 
-		parser_version = gem_cmdparser_version(fd, 0);
+		parser_version = gem_cmdparser_version(fd);
 		igt_require(parser_version != -1);
 
 		igt_require(gem_uses_ppgtt(fd));
diff --git a/tests/i915/gen9_exec_parse.c b/tests/i915/gen9_exec_parse.c
index 6e6ee3af7..b35f2cb43 100644
--- a/tests/i915/gen9_exec_parse.c
+++ b/tests/i915/gen9_exec_parse.c
@@ -1188,7 +1188,7 @@ igt_main
 		igt_require_gem(i915);
 		gem_require_blitter(i915);
 
-		igt_require(gem_cmdparser_version(i915, I915_EXEC_BLT) >= 10);
+		igt_require(gem_cmdparser_version(i915) >= 10);
 		igt_require(intel_gen(intel_get_drm_devid(i915)) == 9);
 
 		handle = gem_create(i915, HANDLE_SIZE);
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index a8e9891e0..ddead9493 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -236,7 +236,7 @@ test_engine_hang(const intel_ctx_t *ctx,
 	IGT_LIST_HEAD(list);
 
 	igt_skip_on(flags & IGT_SPIN_INVALID_CS &&
-		    gem_has_cmdparser(device, e->flags));
+		    gem_engine_has_cmdparser(device, &ctx->cfg, e->flags));
 
 	/* Fill all the other engines with background load */
 	for_each_ctx_engine(device, ctx, other) {
-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (3 preceding siblings ...)
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks Jason Ekstrand
@ 2021-07-11  3:52 ` Jason Ekstrand
  2021-07-12 14:58   ` Daniel Vetter
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser Jason Ekstrand
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:52 UTC (permalink / raw)
  To: igt-dev

When we have a command parser which runs synchronously, it blocks until
the batch is idle.  For most userspace, this doesn't matter as they
never re-use a batch.  With IGT, this can be a problem because it means
we can't queue up multiple instances of the same batch.  The easy
solution is to create a new batch BO for each execbuf.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
---
 tests/i915/gem_exec_schedule.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index a75faeb68..ee7b10f7f 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -1891,7 +1891,6 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
 		reloc.delta = sizeof(uint32_t) * n;
 		reloc.read_domains = I915_GEM_DOMAIN_RENDER;
 		reloc.write_domain = I915_GEM_DOMAIN_RENDER;
-		obj[2].handle = gem_create(fd, 4096);
 		obj[2].relocs_ptr = to_user_pointer(&reloc);
 		obj[2].relocation_count = 1;
 
@@ -1910,15 +1909,20 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
 		}
 		batch[++i] = eb.rsvd1;
 		batch[++i] = MI_BATCH_BUFFER_END;
-		gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
 
 		gem_context_set_priority(fd, eb.rsvd1, MAX_PRIO - nreq + n);
 		for (int m = 0; m < XS; m++) {
 			obj[1].handle = dep[m];
 			reloc.target_handle = obj[1].handle;
+
+			/* Create a new batch BO every time so we don't end
+			 * up with extra dependencies
+			 */
+			obj[2].handle = gem_create(fd, 4096);
+			gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
 			gem_execbuf(fd, &eb);
+			gem_close(fd, obj[2].handle);
 		}
-		gem_close(fd, obj[2].handle);
 	}
 	igt_info("First deptree: %d requests [%.3fs]\n",
 		 n * XS, 1e-9*igt_nsec_elapsed(&tv));
-- 
2.31.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (4 preceding siblings ...)
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep() Jason Ekstrand
@ 2021-07-11  3:52 ` Jason Ekstrand
  2021-07-12 15:00   ` Daniel Vetter
  2021-07-11 13:08 ` [igt-dev] ✓ Fi.CI.BAT: success for Rework some command parser version checks Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-11  3:52 UTC (permalink / raw)
  To: igt-dev

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@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

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for Rework some command parser version checks
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (5 preceding siblings ...)
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser Jason Ekstrand
@ 2021-07-11 13:08 ` Patchwork
  2021-07-11 14:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2021-07-12 14:51 ` [igt-dev] [PATCH i-g-t 0/6] " Daniel Vetter
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2021-07-11 13:08 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 2182 bytes --]

== Series Details ==

Series: Rework some command parser version checks
URL   : https://patchwork.freedesktop.org/series/92406/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10330 -> IGTPW_6012
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/index.html

Known issues
------------

  Here are the changes found in IGTPW_6012 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-soraka:      [PASS][1] -> [INCOMPLETE][2] ([i915#155])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html

  
#### Possible fixes ####

  * igt@kms_chamelium@dp-crc-fast:
    - fi-kbl-7500u:       [FAIL][3] ([i915#1372]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1372]: https://gitlab.freedesktop.org/drm/intel/issues/1372
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982


Participating hosts (41 -> 39)
------------------------------

  Missing    (2): fi-bsw-cyan fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6134 -> IGTPW_6012

  CI-20190529: 20190529
  CI_DRM_10330: 4d00e2309398147acdbfefbe1deb4b0e78868466 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6012: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/index.html
  IGT_6134: cd63c83e23789eb194d38b8d272247a88122f2f6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/index.html

[-- Attachment #1.2: Type: text/html, Size: 2735 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for Rework some command parser version checks
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (6 preceding siblings ...)
  2021-07-11 13:08 ` [igt-dev] ✓ Fi.CI.BAT: success for Rework some command parser version checks Patchwork
@ 2021-07-11 14:18 ` Patchwork
  2021-07-12 14:51 ` [igt-dev] [PATCH i-g-t 0/6] " Daniel Vetter
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2021-07-11 14:18 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 30259 bytes --]

== Series Details ==

Series: Rework some command parser version checks
URL   : https://patchwork.freedesktop.org/series/92406/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10330_full -> IGTPW_6012_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6012_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6012_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_6012_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gen9_exec_parse@basic-rejected:
    - shard-iclb:         NOTRUN -> [SKIP][1] +3 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb6/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-tglb:         NOTRUN -> [SKIP][2] +4 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gen9_exec_parse@bb-start-out.html

  
#### Warnings ####

  * igt@gen9_exec_parse@allowed-all:
    - shard-iclb:         [SKIP][3] ([fdo#112306]) -> [SKIP][4] +11 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb6/igt@gen9_exec_parse@allowed-all.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb2/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-tglb:         [SKIP][5] ([i915#2527]) -> [SKIP][6] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb2/igt@gen9_exec_parse@bb-oversize.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@gen9_exec_parse@bb-oversize.html
    - shard-iclb:         [SKIP][7] ([i915#2527]) -> [SKIP][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb2/igt@gen9_exec_parse@bb-oversize.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb4/igt@gen9_exec_parse@bb-oversize.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-tglb:         [SKIP][9] ([fdo#112306]) -> [SKIP][10] +10 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb7/igt@gen9_exec_parse@bb-start-param.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb2/igt@gen9_exec_parse@bb-start-param.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         [SKIP][11] ([i915#2856]) -> [SKIP][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb3/igt@gen9_exec_parse@shadow-peek.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gen9_exec_parse@shadow-peek.html
    - shard-iclb:         [SKIP][13] ([i915#2856]) -> [SKIP][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb4/igt@gen9_exec_parse@shadow-peek.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb8/igt@gen9_exec_parse@shadow-peek.html

  * igt@runner@aborted:
    - shard-iclb:         ([FAIL][15], [FAIL][16], [FAIL][17]) ([i915#1814] / [i915#2722] / [i915#3002] / [i915#3744]) -> ([FAIL][18], [FAIL][19], [FAIL][20], [FAIL][21], [FAIL][22], [FAIL][23], [FAIL][24]) ([i915#1814] / [i915#2722] / [i915#3002] / [i915#3702] / [i915#3744])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb8/igt@runner@aborted.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb7/igt@runner@aborted.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb4/igt@runner@aborted.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb1/igt@runner@aborted.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb7/igt@runner@aborted.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb7/igt@runner@aborted.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb4/igt@runner@aborted.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb6/igt@runner@aborted.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb5/igt@runner@aborted.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb2/igt@runner@aborted.html

  
Known issues
------------

  Here are the changes found in IGTPW_6012_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@display-4x:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#1839])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb5/igt@feature_discovery@display-4x.html
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#1839])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb1/igt@feature_discovery@display-4x.html

  * igt@gem_create@create-massive:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][27] ([i915#3002])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb7/igt@gem_create@create-massive.html
    - shard-snb:          NOTRUN -> [DMESG-WARN][28] ([i915#3002])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-snb2/igt@gem_create@create-massive.html
    - shard-tglb:         NOTRUN -> [DMESG-WARN][29] ([i915#3002])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gem_create@create-massive.html
    - shard-glk:          NOTRUN -> [DMESG-WARN][30] ([i915#3002])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk5/igt@gem_create@create-massive.html

  * igt@gem_ctx_persistence@engines-hostile@rcs0:
    - shard-tglb:         [PASS][31] -> [FAIL][32] ([i915#2410])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb3/igt@gem_ctx_persistence@engines-hostile@rcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb7/igt@gem_ctx_persistence@engines-hostile@rcs0.html

  * igt@gem_ctx_persistence@processes:
    - shard-snb:          NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#1099]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-snb6/igt@gem_ctx_persistence@processes.html

  * igt@gem_ctx_persistence@smoketest:
    - shard-tglb:         [PASS][34] -> [FAIL][35] ([i915#2896])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb6/igt@gem_ctx_persistence@smoketest.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gem_ctx_persistence@smoketest.html

  * igt@gem_eio@in-flight-contexts-10ms:
    - shard-tglb:         [PASS][36] -> [TIMEOUT][37] ([i915#3063])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb6/igt@gem_eio@in-flight-contexts-10ms.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb5/igt@gem_eio@in-flight-contexts-10ms.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-apl:          NOTRUN -> [FAIL][38] ([i915#2846])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl2/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         NOTRUN -> [FAIL][39] ([i915#2842])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb5/igt@gem_exec_fair@basic-none-share@rcs0.html
    - shard-glk:          [PASS][40] -> [FAIL][41] ([i915#2842])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk3/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-apl:          [PASS][42] -> [FAIL][43] ([i915#2842])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-apl2/igt@gem_exec_fair@basic-none-solo@rcs0.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl6/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs1:
    - shard-kbl:          [PASS][44] -> [FAIL][45] ([i915#2842])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl1/igt@gem_exec_fair@basic-none@vcs1.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl4/igt@gem_exec_fair@basic-none@vcs1.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [PASS][46] -> [FAIL][47] ([i915#2842])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb1/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_reloc@basic-spin@bcs0:
    - shard-kbl:          [PASS][48] -> [SKIP][49] ([fdo#109271]) +1 similar issue
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl2/igt@gem_exec_reloc@basic-spin@bcs0.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl1/igt@gem_exec_reloc@basic-spin@bcs0.html
    - shard-glk:          [PASS][50] -> [SKIP][51] ([fdo#109271]) +1 similar issue
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-glk7/igt@gem_exec_reloc@basic-spin@bcs0.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk3/igt@gem_exec_reloc@basic-spin@bcs0.html

  * igt@gem_exec_whisper@basic-contexts-all:
    - shard-glk:          [PASS][52] -> [DMESG-WARN][53] ([i915#118] / [i915#95]) +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-glk5/igt@gem_exec_whisper@basic-contexts-all.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk3/igt@gem_exec_whisper@basic-contexts-all.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][54] -> [SKIP][55] ([i915#2190])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-tglb3/igt@gem_huc_copy@huc-copy.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_mmap_gtt@coherency:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([fdo#111656])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@gem_mmap_gtt@coherency.html
    - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#109292])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb4/igt@gem_mmap_gtt@coherency.html

  * igt@gem_mmap_gtt@cpuset-medium-copy-odd:
    - shard-iclb:         [PASS][58] -> [FAIL][59] ([i915#307])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb3/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb3/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          NOTRUN -> [FAIL][60] ([i915#644])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_render_copy@yf-tiled-to-vebox-yf-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][61] ([i915#768])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb7/igt@gem_render_copy@yf-tiled-to-vebox-yf-tiled.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-apl:          NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#3323])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl8/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-iclb:         NOTRUN -> [SKIP][63] ([i915#3297]) +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb7/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3297]) +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb1/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-apl:          NOTRUN -> [INCOMPLETE][65] ([i915#2405])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl8/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen3_render_linear_blits:
    - shard-tglb:         NOTRUN -> [SKIP][66] ([fdo#109289]) +3 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@gen3_render_linear_blits.html
    - shard-iclb:         NOTRUN -> [SKIP][67] ([fdo#109289]) +3 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb8/igt@gen3_render_linear_blits.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][68] ([i915#3698])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb5/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-kbl:          NOTRUN -> [FAIL][69] ([i915#454])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl6/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][70] -> [DMESG-WARN][71] ([i915#180])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-apl6/igt@i915_suspend@fence-restore-untiled.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl6/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-iclb:         NOTRUN -> [SKIP][72] ([i915#1769])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb8/igt@kms_atomic_transition@plane-all-modeset-transition.html
    - shard-tglb:         NOTRUN -> [SKIP][73] ([i915#1769])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb2/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][74] ([fdo#110725] / [fdo#111614])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb2/igt@kms_big_fb@linear-16bpp-rotate-90.html
    - shard-tglb:         NOTRUN -> [SKIP][75] ([fdo#111614])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb2/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
    - shard-iclb:         [PASS][76] -> [DMESG-WARN][77] ([i915#3621])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb2/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb1/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][78] ([fdo#111615]) +4 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb1/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_big_joiner@2x-modeset:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([i915#2705])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb5/igt@kms_big_joiner@2x-modeset.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][80] ([i915#3689]) +11 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_chamelium@hdmi-crc-nonplanar-formats:
    - shard-glk:          NOTRUN -> [SKIP][81] ([fdo#109271] / [fdo#111827]) +11 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk1/igt@kms_chamelium@hdmi-crc-nonplanar-formats.html

  * igt@kms_chamelium@hdmi-hpd-enable-disable-mode:
    - shard-snb:          NOTRUN -> [SKIP][82] ([fdo#109271] / [fdo#111827]) +23 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-snb7/igt@kms_chamelium@hdmi-hpd-enable-disable-mode.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-kbl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [fdo#111827]) +22 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl2/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_chamelium@vga-hpd:
    - shard-apl:          NOTRUN -> [SKIP][84] ([fdo#109271] / [fdo#111827]) +21 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl7/igt@kms_chamelium@vga-hpd.html

  * igt@kms_color_chamelium@pipe-a-ctm-red-to-blue:
    - shard-iclb:         NOTRUN -> [SKIP][85] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb3/igt@kms_color_chamelium@pipe-a-ctm-red-to-blue.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-75:
    - shard-tglb:         NOTRUN -> [SKIP][86] ([fdo#109284] / [fdo#111827]) +12 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_color_chamelium@pipe-b-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-d-ctm-blue-to-red:
    - shard-iclb:         NOTRUN -> [SKIP][87] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb1/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html

  * igt@kms_content_protection@atomic:
    - shard-kbl:          NOTRUN -> [TIMEOUT][88] ([i915#1319]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl4/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@content_type_change:
    - shard-iclb:         NOTRUN -> [SKIP][89] ([fdo#109300] / [fdo#111066]) +2 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb4/igt@kms_content_protection@content_type_change.html
    - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#111828]) +2 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_content_protection@content_type_change.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([i915#3319])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_cursor_crc@pipe-a-cursor-32x32-onscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-32x10-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#3359]) +4 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_cursor_crc@pipe-c-cursor-32x10-rapid-movement.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-random:
    - shard-iclb:         NOTRUN -> [SKIP][93] ([fdo#109278] / [fdo#109279]) +2 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb3/igt@kms_cursor_crc@pipe-c-cursor-512x170-random.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x512-random:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109279] / [i915#3359]) +5 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb2/igt@kms_cursor_crc@pipe-c-cursor-512x512-random.html

  * igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen:
    - shard-kbl:          NOTRUN -> [SKIP][95] ([fdo#109271]) +201 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl2/igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen.html

  * igt@kms_cursor_crc@pipe-d-cursor-32x10-offscreen:
    - shard-iclb:         NOTRUN -> [SKIP][96] ([fdo#109278]) +27 similar issues
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb8/igt@kms_cursor_crc@pipe-d-cursor-32x10-offscreen.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
    - shard-iclb:         NOTRUN -> [SKIP][97] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb6/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@pipe-d-torture-bo:
    - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#533])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl4/igt@kms_cursor_legacy@pipe-d-torture-bo.html

  * igt@kms_dp_tiled_display@basic-test-pattern:
    - shard-iclb:         NOTRUN -> [SKIP][99] ([i915#426])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb3/igt@kms_dp_tiled_display@basic-test-pattern.html
    - shard-tglb:         NOTRUN -> [SKIP][100] ([i915#426])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb7/igt@kms_dp_tiled_display@basic-test-pattern.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [PASS][101] -> [INCOMPLETE][102] ([i915#155] / [i915#180] / [i915#636])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl3/igt@kms_fbcon_fbt@fbc-suspend.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][103] -> [FAIL][104] ([i915#79])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][105] -> [INCOMPLETE][106] ([i915#2199])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-glk3/igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a1-hdmi-a2.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk1/igt@kms_flip@2x-flip-vs-suspend@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-tglb:         NOTRUN -> [SKIP][107] ([fdo#111825]) +38 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@kms_flip@2x-plain-flip-ts-check.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1:
    - shard-apl:          [PASS][108] -> [FAIL][109] ([i915#79])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-apl3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html

  * igt@kms_flip@plain-flip-fb-recreate-interruptible@b-dp1:
    - shard-kbl:          [PASS][110] -> [FAIL][111] ([i915#2122])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl3/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-dp1.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl6/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs:
    - shard-kbl:          NOTRUN -> [SKIP][112] ([fdo#109271] / [i915#2672])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
    - shard-apl:          NOTRUN -> [SKIP][113] ([fdo#109271] / [i915#2672])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-glk:          NOTRUN -> [FAIL][114] ([i915#2546] / [i915#49])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite:
    - shard-snb:          NOTRUN -> [SKIP][115] ([fdo#109271]) +411 similar issues
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-snb2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt:
    - shard-iclb:         NOTRUN -> [SKIP][116] ([fdo#109280]) +21 similar issues
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu:
    - shard-glk:          NOTRUN -> [SKIP][117] ([fdo#109271]) +114 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk3/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-tglb:         NOTRUN -> [SKIP][118] ([i915#1187])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb1/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
    - shard-apl:          NOTRUN -> [SKIP][119] ([fdo#109271] / [i915#533])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl1/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
    - shard-apl:          NOTRUN -> [FAIL][120] ([i915#265])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
    - shard-kbl:          NOTRUN -> [FAIL][121] ([i915#265])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl6/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
    - shard-apl:          NOTRUN -> [FAIL][122] ([fdo#108145] / [i915#265]) +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
    - shard-kbl:          NOTRUN -> [FAIL][123] ([fdo#108145] / [i915#265])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl2/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
    - shard-glk:          NOTRUN -> [FAIL][124] ([i915#265])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk9/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html

  * igt@kms_plane_lowres@pipe-a-tiling-none:
    - shard-tglb:         NOTRUN -> [SKIP][125] ([i915#3536]) +2 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb7/igt@kms_plane_lowres@pipe-a-tiling-none.html

  * igt@kms_plane_lowres@pipe-c-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][126] ([fdo#112054])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb1/igt@kms_plane_lowres@pipe-c-tiling-yf.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-iclb:         NOTRUN -> [SKIP][127] ([fdo#109274]) +3 similar issues
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb5/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:
    - shard-apl:          NOTRUN -> [SKIP][128] ([fdo#109271] / [i915#2733])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl3/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-tglb:         NOTRUN -> [SKIP][129] ([i915#2920]) +3 similar issues
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb6/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1:
    - shard-iclb:         NOTRUN -> [SKIP][130] ([i915#658]) +2 similar issues
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb3/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3:
    - shard-kbl:          NOTRUN -> [SKIP][131] ([fdo#109271] / [i915#658]) +5 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4:
    - shard-glk:          NOTRUN -> [SKIP][132] ([fdo#109271] / [i915#658]) +3 similar issues
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-glk2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1:
    - shard-apl:          NOTRUN -> [SKIP][133] ([fdo#109271] / [i915#658]) +4 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-apl7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1.html

  * igt@kms_psr2_su@page_flip:
    - shard-tglb:         NOTRUN -> [SKIP][134] ([i915#1911])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb3/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][135] -> [SKIP][136] ([fdo#109441]) +1 similar issue
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_psr@psr2_sprite_render:
    - shard-tglb:         NOTRUN -> [FAIL][137] ([i915#132] / [i915#3467]) +1 similar issue
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-tglb2/igt@kms_psr@psr2_sprite_render.html
    - shard-iclb:         NOTRUN -> [SKIP][138] ([fdo#109441]) +1 similar issue
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-iclb8/igt@kms_psr@psr2_sprite_render.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [PASS][139] -> [DMESG-WARN][140] ([i915#180] / [i915#295])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/shard-kbl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-kbl:          [PASS][141] -> [DMESG-WARN][142] ([i915#180]) +1 similar issue
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10330/shard-kbl2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6012/index.html

[-- Attachment #1.2: Type: text/html, Size: 34322 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks
  2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
                   ` (7 preceding siblings ...)
  2021-07-11 14:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2021-07-12 14:51 ` Daniel Vetter
  2021-07-12 15:50   ` Jason Ekstrand
  8 siblings, 1 reply; 17+ messages in thread
From: Daniel Vetter @ 2021-07-12 14:51 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev

On Sat, Jul 10, 2021 at 10:51:58PM -0500, Jason Ekstrand wrote:
> This patch series does two things primarily:
> 
>  1. Rework the way we check for the command parser.  Previously, we had a
>     parameter that claimed to check per-engine but the engine was ignored.
>     With this series, we now have a version which doesn't take an engine
>     for general "Is there a command parser at all?" checks and one which
>     takes a context config and an engine specifier and provides an accurate
>     check.
> 
>  2. Disable tests which don't work with a synchronous command parser when
>     the parser is active.  This will maintain as much coverage as possible
>     while allowing us to move the command parser back to synchronous.  In
>     each case, the test is actively attempting to run a batch while the
>     batch buffer is stuck on a spinner.

Can we either just fix them, or delete them? Carrying gunk around that
skips isn't much use imo.
-Daniel

> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> Jason Ekstrand (6):
>   lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper
>   tests/i915/gem_eio: Convert to intel_ctx_t
>   tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests
>   i915: Improve the precision of command parser checks
>   tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
>   tests/i915/gem_exec_reloc: Don't attempt active relocations with the
>     command parser
> 
>  lib/i915/gem_submission.c        | 38 ++++++++++++++++++--
>  lib/i915/gem_submission.h        |  8 +++--
>  lib/igt_dummyload.c              | 15 +++++---
>  lib/intel_ctx.c                  | 42 +++++++++++++++--------
>  lib/intel_ctx.h                  |  1 +
>  tests/i915/gem_ctx_persistence.c | 43 ++++++++++++++---------
>  tests/i915/gem_eio.c             | 59 +++++++++++++++++---------------
>  tests/i915/gem_exec_balancer.c   |  2 +-
>  tests/i915/gem_exec_reloc.c      | 15 ++++++++
>  tests/i915/gem_exec_schedule.c   | 10 ++++--
>  tests/i915/gen7_exec_parse.c     |  2 +-
>  tests/i915/gen9_exec_parse.c     |  2 +-
>  tests/i915/i915_hangman.c        |  2 +-
>  13 files changed, 163 insertions(+), 76 deletions(-)
> 
> -- 
> 2.31.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep() Jason Ekstrand
@ 2021-07-12 14:58   ` Daniel Vetter
  2021-07-12 16:00     ` Jason Ekstrand
  0 siblings, 1 reply; 17+ messages in thread
From: Daniel Vetter @ 2021-07-12 14:58 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev

On Sat, Jul 10, 2021 at 10:52:03PM -0500, Jason Ekstrand wrote:
> When we have a command parser which runs synchronously, it blocks until
> the batch is idle.  For most userspace, this doesn't matter as they
> never re-use a batch.  With IGT, this can be a problem because it means
> we can't queue up multiple instances of the same batch.  The easy
> solution is to create a new batch BO for each execbuf.
> 
> Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>

I'm way behind on all the reloc work I've done, but should we instead do
my patch (which you reviewed):

https://patchwork.freedesktop.org/patch/437683/

Or does that not work? Asking since you're papering over the same issue I
spotted already ...
-Daniel

> ---
>  tests/i915/gem_exec_schedule.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
> index a75faeb68..ee7b10f7f 100644
> --- a/tests/i915/gem_exec_schedule.c
> +++ b/tests/i915/gem_exec_schedule.c
> @@ -1891,7 +1891,6 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
>  		reloc.delta = sizeof(uint32_t) * n;
>  		reloc.read_domains = I915_GEM_DOMAIN_RENDER;
>  		reloc.write_domain = I915_GEM_DOMAIN_RENDER;
> -		obj[2].handle = gem_create(fd, 4096);
>  		obj[2].relocs_ptr = to_user_pointer(&reloc);
>  		obj[2].relocation_count = 1;
>  
> @@ -1910,15 +1909,20 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
>  		}
>  		batch[++i] = eb.rsvd1;
>  		batch[++i] = MI_BATCH_BUFFER_END;
> -		gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
>  
>  		gem_context_set_priority(fd, eb.rsvd1, MAX_PRIO - nreq + n);
>  		for (int m = 0; m < XS; m++) {
>  			obj[1].handle = dep[m];
>  			reloc.target_handle = obj[1].handle;
> +
> +			/* Create a new batch BO every time so we don't end
> +			 * up with extra dependencies
> +			 */
> +			obj[2].handle = gem_create(fd, 4096);
> +			gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
>  			gem_execbuf(fd, &eb);
> +			gem_close(fd, obj[2].handle);
>  		}
> -		gem_close(fd, obj[2].handle);
>  	}
>  	igt_info("First deptree: %d requests [%.3fs]\n",
>  		 n * XS, 1e-9*igt_nsec_elapsed(&tv));
> -- 
> 2.31.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser Jason Ekstrand
@ 2021-07-12 15:00   ` Daniel Vetter
  2021-07-12 16:01     ` Jason Ekstrand
  0 siblings, 1 reply; 17+ messages in thread
From: Daniel Vetter @ 2021-07-12 15:00 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev

On Sat, Jul 10, 2021 at 10:52:04PM -0500, Jason Ekstrand wrote:
> 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@jlekstrand.net>

I think we should just ditch these tests as invalid. Can you pick the
right set of reverts from my series and just push them?

https://patchwork.freedesktop.org/series/91160/

Cheers, Daniel

> ---
>  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
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks
  2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks Jason Ekstrand
@ 2021-07-12 15:12   ` Daniel Vetter
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Vetter @ 2021-07-12 15:12 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: igt-dev

On Sat, Jul 10, 2021 at 10:52:02PM -0500, Jason Ekstrand wrote:
> The previous gem_has_cmdparser helper took an engine and did nothing
> with it.  We delete the engine parameter and use the general helper for
> the ALL_ENGINES cases.  For cases where we really do care about
> something more precise, we add a version which takes an intel_ctx_cfg_t
> and an engine specifier and is able to say whether or not that
> particular engine has the command parser enabled.
> 
> Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>

On patches 1-4:

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  lib/i915/gem_submission.c        | 38 ++++++++++++++++++++++++++++++--
>  lib/i915/gem_submission.h        |  8 ++++---
>  lib/igt_dummyload.c              | 15 ++++++++-----
>  tests/i915/gem_ctx_persistence.c | 13 +++++++++--
>  tests/i915/gem_eio.c             |  2 +-
>  tests/i915/gem_exec_balancer.c   |  2 +-
>  tests/i915/gen7_exec_parse.c     |  2 +-
>  tests/i915/gen9_exec_parse.c     |  2 +-
>  tests/i915/i915_hangman.c        |  2 +-
>  9 files changed, 67 insertions(+), 17 deletions(-)
> 
> diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
> index 60bedea83..f1af4f97c 100644
> --- a/lib/i915/gem_submission.c
> +++ b/lib/i915/gem_submission.c
> @@ -215,7 +215,13 @@ void gem_test_all_engines(int i915)
>  	close(i915);
>  }
>  
> -int gem_cmdparser_version(int i915, uint32_t engine)
> +/**
> + * gem_cmdparser_version:
> + * @i915: open i915 drm file descriptor
> + *
> + * Returns the command parser version
> + */
> +int gem_cmdparser_version(int i915)
>  {
>  	int version = 0;
>  	drm_i915_getparam_t gp = {
> @@ -227,6 +233,34 @@ int gem_cmdparser_version(int i915, uint32_t engine)
>  	return version;
>  }
>  
> +/**
> + * gem_engine_has_cmdparser:
> + * @i915: open i915 drm file descriptor
> + * @class: an intel_ctx_cfg_t
> + * @engine: an engine specifier
> + *
> + * Returns true if the given engine has a command parser
> + */
> +bool gem_engine_has_cmdparser(int i915, const intel_ctx_cfg_t *cfg,
> +			      unsigned int engine)
> +{
> +	const int gen = intel_gen(intel_get_drm_devid(i915));
> +	const int parser_version = gem_cmdparser_version(i915);
> +	const int class = intel_ctx_cfg_engine_class(cfg, engine);
> +
> +	if (parser_version < 0)
> +		return false;
> +
> +	if (gen == 7)
> +		return true;
> +
> +	/* GFX version 9 BLT command parsing was added in parser version 10 */
> +	if (gen == 9 && class == I915_ENGINE_CLASS_COPY && parser_version >= 10)
> +		return true;
> +
> +	return false;
> +}
> +
>  bool gem_has_blitter(int i915)
>  {
>  	unsigned int blt;
> @@ -248,7 +282,7 @@ static bool gem_engine_has_immutable_submission(int i915, int class)
>  	const int gen = intel_gen(intel_get_drm_devid(i915));
>          int parser_version;
>  
> -	parser_version = gem_cmdparser_version(i915, 0);
> +	parser_version = gem_cmdparser_version(i915);
>  	if (parser_version < 0)
>  		return false;
>  
> diff --git a/lib/i915/gem_submission.h b/lib/i915/gem_submission.h
> index 44e6e3118..9b3e2a4e5 100644
> --- a/lib/i915/gem_submission.h
> +++ b/lib/i915/gem_submission.h
> @@ -39,11 +39,13 @@ bool gem_has_guc_submission(int fd);
>  bool gem_engine_has_mutable_submission(int fd, unsigned int engine);
>  bool gem_class_has_mutable_submission(int fd, int class);
>  
> -int gem_cmdparser_version(int i915, uint32_t engine);
> -static inline bool gem_has_cmdparser(int i915, uint32_t engine)
> +int gem_cmdparser_version(int i915);
> +static inline bool gem_has_cmdparser(int i915)
>  {
> -	return gem_cmdparser_version(i915, engine) > 0;
> +	return gem_cmdparser_version(i915) > 0;
>  }
> +bool gem_engine_has_cmdparser(int i915, const intel_ctx_cfg_t *cfg,
> +			      unsigned int engine);
>  
>  bool gem_has_blitter(int i915);
>  void gem_require_blitter(int i915);
> diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> index 5354b9c2b..8a5ad5ee3 100644
> --- a/lib/igt_dummyload.c
> +++ b/lib/igt_dummyload.c
> @@ -251,9 +251,11 @@ emit_recursive_batch(igt_spin_t *spin,
>  	/* Allow ourselves to be preempted */
>  	if (!(opts->flags & IGT_SPIN_NO_PREEMPTION))
>  		*cs++ = MI_ARB_CHK;
> -	if (opts->flags & IGT_SPIN_INVALID_CS &&
> -	    !gem_has_cmdparser(fd, opts->engine))
> -		*cs++ = 0xdeadbeef;
> +	if (opts->flags & IGT_SPIN_INVALID_CS) {
> +		igt_assert(opts->ctx);
> +		if (!gem_engine_has_cmdparser(fd, &opts->ctx->cfg, opts->engine))
> +			*cs++ = 0xdeadbeef;
> +	}
>  
>  	/* Pad with a few nops so that we do not completely hog the system.
>  	 *
> @@ -432,8 +434,11 @@ igt_spin_factory(int fd, const struct igt_spin_factory *opts)
>  		igt_require(gem_class_can_store_dword(fd, class));
>  	}
>  
> -	if (opts->flags & IGT_SPIN_INVALID_CS)
> -		igt_require(!gem_has_cmdparser(fd, opts->engine));
> +	if (opts->flags & IGT_SPIN_INVALID_CS) {
> +		igt_assert(opts->ctx);
> +		igt_require(!gem_engine_has_cmdparser(fd, &opts->ctx->cfg,
> +						      opts->engine));
> +	}
>  
>  	spin = spin_create(fd, opts);
>  
> diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> index f514e2b78..c6db06b8b 100644
> --- a/tests/i915/gem_ctx_persistence.c
> +++ b/tests/i915/gem_ctx_persistence.c
> @@ -373,6 +373,7 @@ static void test_nohangcheck_hostile(int i915, const intel_ctx_cfg_t *cfg)
>  static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
>  {
>  	const struct intel_execution_engine2 *e;
> +	int testable_engines = 0;
>  	int dir;
>  
>  	cleanup(i915);
> @@ -382,7 +383,11 @@ static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
>  	 * we forcibly terminate that context.
>  	 */
>  
> -	igt_require(!gem_has_cmdparser(i915, ALL_ENGINES));
> +	for_each_ctx_cfg_engine(i915, cfg, e) {
> +		if (!gem_engine_has_cmdparser(i915, cfg, e->flags))
> +			testable_engines++;
> +	}
> +	igt_require(testable_engines);
>  
>  	dir = igt_params_open(i915);
>  	igt_require(dir != -1);
> @@ -391,9 +396,13 @@ static void test_nohangcheck_hang(int i915, const intel_ctx_cfg_t *cfg)
>  
>  	for_each_ctx_cfg_engine(i915, cfg, e) {
>  		int64_t timeout = reset_timeout_ms * NSEC_PER_MSEC;
> -		const intel_ctx_t *ctx = intel_ctx_create(i915, cfg);
> +		const intel_ctx_t *ctx;
>  		igt_spin_t *spin;
>  
> +		if (!gem_engine_has_cmdparser(i915, cfg, e->flags))
> +			continue;
> +
> +		ctx = intel_ctx_create(i915, cfg);
>  		spin = igt_spin_new(i915, .ctx = ctx,
>  				    .engine = e->flags,
>  				    .flags = IGT_SPIN_INVALID_CS);
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index b03ddab54..d6a5e23bd 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -183,7 +183,7 @@ static igt_spin_t * __spin_poll(int fd, const intel_ctx_t *ctx,
>  		.flags = IGT_SPIN_NO_PREEMPTION | IGT_SPIN_FENCE_OUT,
>  	};
>  
> -	if (!gem_has_cmdparser(fd, opts.engine) &&
> +	if (!gem_engine_has_cmdparser(fd, &ctx->cfg, opts.engine) &&
>  	    intel_gen(intel_get_drm_devid(fd)) != 6)
>  		opts.flags |= IGT_SPIN_INVALID_CS;
>  
> diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
> index 070f392b1..2f98950bb 100644
> --- a/tests/i915/gem_exec_balancer.c
> +++ b/tests/i915/gem_exec_balancer.c
> @@ -2257,7 +2257,7 @@ static void hangme(int i915)
>  			flags = IGT_SPIN_FENCE_IN |
>  				IGT_SPIN_FENCE_OUT |
>  				IGT_SPIN_NO_PREEMPTION;
> -			if (!gem_has_cmdparser(i915, ALL_ENGINES))
> +			if (!gem_engine_has_cmdparser(i915, &ctx->cfg, 0))
>  				flags |= IGT_SPIN_INVALID_CS;
>  			for (int j = 0; j < ARRAY_SIZE(c->spin); j++)  {
>  				c->spin[j] = __igt_spin_new(i915, .ctx = ctx,
> diff --git a/tests/i915/gen7_exec_parse.c b/tests/i915/gen7_exec_parse.c
> index 8326fd5c8..67324061d 100644
> --- a/tests/i915/gen7_exec_parse.c
> +++ b/tests/i915/gen7_exec_parse.c
> @@ -463,7 +463,7 @@ igt_main
>  		fd = drm_open_driver(DRIVER_INTEL);
>  		igt_require_gem(fd);
>  
> -		parser_version = gem_cmdparser_version(fd, 0);
> +		parser_version = gem_cmdparser_version(fd);
>  		igt_require(parser_version != -1);
>  
>  		igt_require(gem_uses_ppgtt(fd));
> diff --git a/tests/i915/gen9_exec_parse.c b/tests/i915/gen9_exec_parse.c
> index 6e6ee3af7..b35f2cb43 100644
> --- a/tests/i915/gen9_exec_parse.c
> +++ b/tests/i915/gen9_exec_parse.c
> @@ -1188,7 +1188,7 @@ igt_main
>  		igt_require_gem(i915);
>  		gem_require_blitter(i915);
>  
> -		igt_require(gem_cmdparser_version(i915, I915_EXEC_BLT) >= 10);
> +		igt_require(gem_cmdparser_version(i915) >= 10);
>  		igt_require(intel_gen(intel_get_drm_devid(i915)) == 9);
>  
>  		handle = gem_create(i915, HANDLE_SIZE);
> diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
> index a8e9891e0..ddead9493 100644
> --- a/tests/i915/i915_hangman.c
> +++ b/tests/i915/i915_hangman.c
> @@ -236,7 +236,7 @@ test_engine_hang(const intel_ctx_t *ctx,
>  	IGT_LIST_HEAD(list);
>  
>  	igt_skip_on(flags & IGT_SPIN_INVALID_CS &&
> -		    gem_has_cmdparser(device, e->flags));
> +		    gem_engine_has_cmdparser(device, &ctx->cfg, e->flags));
>  
>  	/* Fill all the other engines with background load */
>  	for_each_ctx_engine(device, ctx, other) {
> -- 
> 2.31.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks
  2021-07-12 14:51 ` [igt-dev] [PATCH i-g-t 0/6] " Daniel Vetter
@ 2021-07-12 15:50   ` Jason Ekstrand
  0 siblings, 0 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-12 15:50 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: IGT GPU Tools

On Mon, Jul 12, 2021 at 9:51 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Sat, Jul 10, 2021 at 10:51:58PM -0500, Jason Ekstrand wrote:
> > This patch series does two things primarily:
> >
> >  1. Rework the way we check for the command parser.  Previously, we had a
> >     parameter that claimed to check per-engine but the engine was ignored.
> >     With this series, we now have a version which doesn't take an engine
> >     for general "Is there a command parser at all?" checks and one which
> >     takes a context config and an engine specifier and provides an accurate
> >     check.
> >
> >  2. Disable tests which don't work with a synchronous command parser when
> >     the parser is active.  This will maintain as much coverage as possible
> >     while allowing us to move the command parser back to synchronous.  In
> >     each case, the test is actively attempting to run a batch while the
> >     batch buffer is stuck on a spinner.
>
> Can we either just fix them, or delete them? Carrying gunk around that
> skips isn't much use imo.

If we're going to make relocations synchronous, the answer is to
delete them.  Given what they're testing, making them skip is the
"fix" if we're only making the command parser synchronous.

--Jason

> -Daniel
>
> >
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >
> > Jason Ekstrand (6):
> >   lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper
> >   tests/i915/gem_eio: Convert to intel_ctx_t
> >   tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests
> >   i915: Improve the precision of command parser checks
> >   tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
> >   tests/i915/gem_exec_reloc: Don't attempt active relocations with the
> >     command parser
> >
> >  lib/i915/gem_submission.c        | 38 ++++++++++++++++++--
> >  lib/i915/gem_submission.h        |  8 +++--
> >  lib/igt_dummyload.c              | 15 +++++---
> >  lib/intel_ctx.c                  | 42 +++++++++++++++--------
> >  lib/intel_ctx.h                  |  1 +
> >  tests/i915/gem_ctx_persistence.c | 43 ++++++++++++++---------
> >  tests/i915/gem_eio.c             | 59 +++++++++++++++++---------------
> >  tests/i915/gem_exec_balancer.c   |  2 +-
> >  tests/i915/gem_exec_reloc.c      | 15 ++++++++
> >  tests/i915/gem_exec_schedule.c   | 10 ++++--
> >  tests/i915/gen7_exec_parse.c     |  2 +-
> >  tests/i915/gen9_exec_parse.c     |  2 +-
> >  tests/i915/i915_hangman.c        |  2 +-
> >  13 files changed, 163 insertions(+), 76 deletions(-)
> >
> > --
> > 2.31.1
> >
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep()
  2021-07-12 14:58   ` Daniel Vetter
@ 2021-07-12 16:00     ` Jason Ekstrand
  0 siblings, 0 replies; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-12 16:00 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: IGT GPU Tools

On Mon, Jul 12, 2021 at 9:58 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Sat, Jul 10, 2021 at 10:52:03PM -0500, Jason Ekstrand wrote:
> > When we have a command parser which runs synchronously, it blocks until
> > the batch is idle.  For most userspace, this doesn't matter as they
> > never re-use a batch.  With IGT, this can be a problem because it means
> > we can't queue up multiple instances of the same batch.  The easy
> > solution is to create a new batch BO for each execbuf.
> >
> > Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
>
> I'm way behind on all the reloc work I've done, but should we instead do
> my patch (which you reviewed):
>
> https://patchwork.freedesktop.org/patch/437683/

Yup.  I've replaced this patch with a rebased version of yours.

--Jason

> Or does that not work? Asking since you're papering over the same issue I
> spotted already ...
> -Daniel
>
> > ---
> >  tests/i915/gem_exec_schedule.c | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> >
> > diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
> > index a75faeb68..ee7b10f7f 100644
> > --- a/tests/i915/gem_exec_schedule.c
> > +++ b/tests/i915/gem_exec_schedule.c
> > @@ -1891,7 +1891,6 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
> >               reloc.delta = sizeof(uint32_t) * n;
> >               reloc.read_domains = I915_GEM_DOMAIN_RENDER;
> >               reloc.write_domain = I915_GEM_DOMAIN_RENDER;
> > -             obj[2].handle = gem_create(fd, 4096);
> >               obj[2].relocs_ptr = to_user_pointer(&reloc);
> >               obj[2].relocation_count = 1;
> >
> > @@ -1910,15 +1909,20 @@ static void deep(int fd, const intel_ctx_cfg_t *cfg,
> >               }
> >               batch[++i] = eb.rsvd1;
> >               batch[++i] = MI_BATCH_BUFFER_END;
> > -             gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
> >
> >               gem_context_set_priority(fd, eb.rsvd1, MAX_PRIO - nreq + n);
> >               for (int m = 0; m < XS; m++) {
> >                       obj[1].handle = dep[m];
> >                       reloc.target_handle = obj[1].handle;
> > +
> > +                     /* Create a new batch BO every time so we don't end
> > +                      * up with extra dependencies
> > +                      */
> > +                     obj[2].handle = gem_create(fd, 4096);
> > +                     gem_write(fd, obj[2].handle, 0, batch, sizeof(batch));
> >                       gem_execbuf(fd, &eb);
> > +                     gem_close(fd, obj[2].handle);
> >               }
> > -             gem_close(fd, obj[2].handle);
> >       }
> >       igt_info("First deptree: %d requests [%.3fs]\n",
> >                n * XS, 1e-9*igt_nsec_elapsed(&tv));
> > --
> > 2.31.1
> >
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser
  2021-07-12 15:00   ` Daniel Vetter
@ 2021-07-12 16:01     ` Jason Ekstrand
  2021-07-13  9:24       ` Daniel Vetter
  0 siblings, 1 reply; 17+ messages in thread
From: Jason Ekstrand @ 2021-07-12 16:01 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: IGT GPU Tools

On Mon, Jul 12, 2021 at 10:00 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Sat, Jul 10, 2021 at 10:52:04PM -0500, Jason Ekstrand wrote:
> > 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@jlekstrand.net>
>
> I think we should just ditch these tests as invalid. Can you pick the
> right set of reverts from my series and just push them?
>
> https://patchwork.freedesktop.org/series/91160/

Yeah, we can do that too.  Kind-of invalidates the need for the first
4.  I went this way because I was trying to be minimalist and wasn't
sure what happened with your reloc series.

--Jason

> Cheers, Daniel
>
> > ---
> >  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
> >
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser
  2021-07-12 16:01     ` Jason Ekstrand
@ 2021-07-13  9:24       ` Daniel Vetter
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Vetter @ 2021-07-13  9:24 UTC (permalink / raw)
  To: Jason Ekstrand; +Cc: IGT GPU Tools

On Mon, Jul 12, 2021 at 6:02 PM Jason Ekstrand <jason@jlekstrand.net> wrote:
> On Mon, Jul 12, 2021 at 10:00 AM Daniel Vetter <daniel@ffwll.ch> wrote:
> > On Sat, Jul 10, 2021 at 10:52:04PM -0500, Jason Ekstrand wrote:
> > > 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@jlekstrand.net>
> >
> > I think we should just ditch these tests as invalid. Can you pick the
> > right set of reverts from my series and just push them?
> >
> > https://patchwork.freedesktop.org/series/91160/
>
> Yeah, we can do that too.  Kind-of invalidates the need for the first
> 4.  I went this way because I was trying to be minimalist and wasn't
> sure what happened with your reloc series.

Just me being burried happened, so I'm happy if you pick whatever works.

And I thought your first 4 patches where about other test issues, not
about synchronous relocs specifically? Like the igt spinner stuff. I'm
not planning to touch anything in that area.
-Daniel

> --Jason
>
> > Cheers, Daniel
> >
> > > ---
> > >  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
> > >
> > > _______________________________________________
> > > igt-dev mailing list
> > > igt-dev@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch



-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2021-07-13  9:24 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-11  3:51 [igt-dev] [PATCH i-g-t 0/6] Rework some command parser version checks Jason Ekstrand
2021-07-11  3:51 ` [igt-dev] [PATCH i-g-t 1/6] lib/intel_ctx: Add a intel_ctx_cfg_engine_class helper Jason Ekstrand
2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 2/6] tests/i915/gem_eio: Convert to intel_ctx_t Jason Ekstrand
2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 3/6] tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests Jason Ekstrand
2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 4/6] i915: Improve the precision of command parser checks Jason Ekstrand
2021-07-12 15:12   ` Daniel Vetter
2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 5/6] tests/i915/gem_exec_schedule: Avoid cmdparser dependencies in deep() Jason Ekstrand
2021-07-12 14:58   ` Daniel Vetter
2021-07-12 16:00     ` Jason Ekstrand
2021-07-11  3:52 ` [igt-dev] [PATCH i-g-t 6/6] tests/i915/gem_exec_reloc: Don't attempt active relocations with the command parser Jason Ekstrand
2021-07-12 15:00   ` Daniel Vetter
2021-07-12 16:01     ` Jason Ekstrand
2021-07-13  9:24       ` Daniel Vetter
2021-07-11 13:08 ` [igt-dev] ✓ Fi.CI.BAT: success for Rework some command parser version checks Patchwork
2021-07-11 14:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-07-12 14:51 ` [igt-dev] [PATCH i-g-t 0/6] " Daniel Vetter
2021-07-12 15:50   ` Jason Ekstrand

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.