[igt-dev] [PATCH i-g-t 3/6] tests/i915/gem_ctx_persistence: Use intel_ctx_t for hang subtests

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


We need this for proper cmdparser detection

Signed-off-by: Jason Ekstrand <jason at 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



More information about the igt-dev mailing list