[Intel-gfx] [PATCH] drm/i915/gt: Consider multi-gt at all places

Tejas Upadhyay tejas.upadhyay at intel.com
Fri Mar 17 05:52:39 UTC 2023


In order to make igt_live_test work in proper
way, we need to consider multi-gt in all tests
where igt_live_test is used as well as at other
random places where multi-gt should be considered.

Cc: Andi Shyti <andi.shyti at linux.intel.com>
Signed-off-by: Tejas Upadhyay <tejas.upadhyay at intel.com>
---
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    | 13 ++--
 .../drm/i915/gem/selftests/i915_gem_context.c | 28 ++++----
 drivers/gpu/drm/i915/gt/intel_engine_user.c   |  2 +-
 drivers/gpu/drm/i915/gt/selftest_execlists.c  | 68 +++++++++----------
 drivers/gpu/drm/i915/selftests/i915_request.c | 36 +++++-----
 .../gpu/drm/i915/selftests/igt_live_test.c    | 10 +--
 .../gpu/drm/i915/selftests/igt_live_test.h    |  4 +-
 7 files changed, 81 insertions(+), 80 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 9dce2957b4e5..289b75ac39e1 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -2449,9 +2449,9 @@ static int eb_submit(struct i915_execbuffer *eb)
 	return err;
 }
 
-static int num_vcs_engines(struct drm_i915_private *i915)
+static int num_vcs_engines(struct intel_gt *gt)
 {
-	return hweight_long(VDBOX_MASK(to_gt(i915)));
+	return hweight_long(VDBOX_MASK(gt));
 }
 
 /*
@@ -2459,7 +2459,7 @@ static int num_vcs_engines(struct drm_i915_private *i915)
  * The engine index is returned.
  */
 static unsigned int
-gen8_dispatch_bsd_engine(struct drm_i915_private *dev_priv,
+gen8_dispatch_bsd_engine(struct intel_gt *gt,
 			 struct drm_file *file)
 {
 	struct drm_i915_file_private *file_priv = file->driver_priv;
@@ -2467,7 +2467,7 @@ gen8_dispatch_bsd_engine(struct drm_i915_private *dev_priv,
 	/* Check whether the file_priv has already selected one ring. */
 	if ((int)file_priv->bsd_engine < 0)
 		file_priv->bsd_engine =
-			get_random_u32_below(num_vcs_engines(dev_priv));
+			get_random_u32_below(num_vcs_engines(gt));
 
 	return file_priv->bsd_engine;
 }
@@ -2644,6 +2644,7 @@ static unsigned int
 eb_select_legacy_ring(struct i915_execbuffer *eb)
 {
 	struct drm_i915_private *i915 = eb->i915;
+	struct intel_gt *gt = eb->gt;
 	struct drm_i915_gem_execbuffer2 *args = eb->args;
 	unsigned int user_ring_id = args->flags & I915_EXEC_RING_MASK;
 
@@ -2655,11 +2656,11 @@ eb_select_legacy_ring(struct i915_execbuffer *eb)
 		return -1;
 	}
 
-	if (user_ring_id == I915_EXEC_BSD && num_vcs_engines(i915) > 1) {
+	if (user_ring_id == I915_EXEC_BSD && num_vcs_engines(gt) > 1) {
 		unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK;
 
 		if (bsd_idx == I915_EXEC_BSD_DEFAULT) {
-			bsd_idx = gen8_dispatch_bsd_engine(i915, eb->file);
+			bsd_idx = gen8_dispatch_bsd_engine(gt, eb->file);
 		} else if (bsd_idx >= I915_EXEC_BSD_RING1 &&
 			   bsd_idx <= I915_EXEC_BSD_RING2) {
 			bsd_idx >>= I915_EXEC_BSD_SHIFT;
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index a81fa6a20f5a..b2695aab54e5 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -93,7 +93,7 @@ static int live_nop_switch(void *arg)
 		}
 		if (i915_request_wait(rq, 0, 10 * HZ) < 0) {
 			pr_err("Failed to populated %d contexts\n", nctx);
-			intel_gt_set_wedged(to_gt(i915));
+			intel_gt_set_wedged(engine->gt);
 			i915_request_put(rq);
 			err = -EIO;
 			goto out_file;
@@ -105,7 +105,7 @@ static int live_nop_switch(void *arg)
 		pr_info("Populated %d contexts on %s in %lluns\n",
 			nctx, engine->name, ktime_to_ns(times[1] - times[0]));
 
-		err = igt_live_test_begin(&t, i915, __func__, engine->name);
+		err = igt_live_test_begin(&t, engine->gt, __func__, engine->name);
 		if (err)
 			goto out_file;
 
@@ -149,7 +149,7 @@ static int live_nop_switch(void *arg)
 			if (i915_request_wait(rq, 0, HZ / 5) < 0) {
 				pr_err("Switching between %ld contexts timed out\n",
 				       prime);
-				intel_gt_set_wedged(to_gt(i915));
+				intel_gt_set_wedged(engine->gt);
 				i915_request_put(rq);
 				break;
 			}
@@ -163,7 +163,7 @@ static int live_nop_switch(void *arg)
 				break;
 		}
 
-		err = igt_live_test_end(&t);
+		err = igt_live_test_end(&t, engine->gt);
 		if (err)
 			goto out_file;
 
@@ -376,7 +376,7 @@ static int live_parallel_switch(void *arg)
 	for (fn = func; !err && *fn; fn++) {
 		struct igt_live_test t;
 
-		err = igt_live_test_begin(&t, i915, __func__, "");
+		err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 		if (err)
 			break;
 
@@ -397,7 +397,7 @@ static int live_parallel_switch(void *arg)
 			}
 		}
 
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, to_gt(i915)))
 			err = -EIO;
 	}
 
@@ -682,7 +682,7 @@ static int igt_ctx_exec(void *arg)
 		if (IS_ERR(file))
 			return PTR_ERR(file);
 
-		err = igt_live_test_begin(&t, i915, __func__, engine->name);
+		err = igt_live_test_begin(&t, engine->gt, __func__, engine->name);
 		if (err)
 			goto out_file;
 
@@ -760,7 +760,7 @@ static int igt_ctx_exec(void *arg)
 
 out_file:
 		throttle_release(tq, ARRAY_SIZE(tq));
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, engine->gt))
 			err = -EIO;
 
 		fput(file);
@@ -806,7 +806,7 @@ static int igt_shared_ctx_exec(void *arg)
 		goto out_file;
 	}
 
-	err = igt_live_test_begin(&t, i915, __func__, "");
+	err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 	if (err)
 		goto out_file;
 
@@ -895,7 +895,7 @@ static int igt_shared_ctx_exec(void *arg)
 	}
 out_test:
 	throttle_release(tq, ARRAY_SIZE(tq));
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, to_gt(i915)))
 		err = -EIO;
 out_file:
 	fput(file);
@@ -1382,7 +1382,7 @@ static int igt_ctx_readonly(void *arg)
 	if (IS_ERR(file))
 		return PTR_ERR(file);
 
-	err = igt_live_test_begin(&t, i915, __func__, "");
+	err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 	if (err)
 		goto out_file;
 
@@ -1472,7 +1472,7 @@ static int igt_ctx_readonly(void *arg)
 
 out_file:
 	throttle_release(tq, ARRAY_SIZE(tq));
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, to_gt(i915)))
 		err = -EIO;
 
 	fput(file);
@@ -1785,7 +1785,7 @@ static int igt_vm_isolation(void *arg)
 	if (IS_ERR(file))
 		return PTR_ERR(file);
 
-	err = igt_live_test_begin(&t, i915, __func__, "");
+	err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 	if (err)
 		goto out_file;
 
@@ -1882,7 +1882,7 @@ static int igt_vm_isolation(void *arg)
 put_a:
 	i915_gem_object_put(obj_a);
 out_file:
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, to_gt(i915)))
 		err = -EIO;
 	fput(file);
 	return err;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c b/drivers/gpu/drm/i915/gt/intel_engine_user.c
index cd4f1b126f75..dcedff41a825 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
@@ -117,7 +117,7 @@ static void set_scheduler_caps(struct drm_i915_private *i915)
 			disabled |= (I915_SCHEDULER_CAP_ENABLED |
 				     I915_SCHEDULER_CAP_PRIORITY);
 
-		if (intel_uc_uses_guc_submission(&to_gt(i915)->uc))
+		if (intel_uc_uses_guc_submission(&engine->gt->uc))
 			enabled |= I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP;
 
 		for (i = 0; i < ARRAY_SIZE(map); i++) {
diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index 736b89a8ecf5..4384d466a632 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -189,7 +189,7 @@ static int live_unlite_restore(struct intel_gt *gt, int prio)
 		if (!intel_engine_can_store_dword(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			break;
 		}
@@ -302,7 +302,7 @@ static int live_unlite_restore(struct intel_gt *gt, int prio)
 		}
 
 		st_engine_heartbeat_enable(engine);
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, gt))
 			err = -EIO;
 		if (err)
 			break;
@@ -351,7 +351,7 @@ static int live_unlite_ring(void *arg)
 		if (!intel_engine_can_store_dword(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			break;
 		}
@@ -462,7 +462,7 @@ static int live_unlite_ring(void *arg)
 			intel_context_put(ce[n]);
 		}
 		st_engine_heartbeat_enable(engine);
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, gt))
 			err = -EIO;
 		if (err)
 			break;
@@ -494,7 +494,7 @@ static int live_pin_rewind(void *arg)
 		struct intel_ring *ring;
 		struct igt_live_test t;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			break;
 		}
@@ -541,7 +541,7 @@ static int live_pin_rewind(void *arg)
 		i915_request_add(rq);
 
 		/* Expect not to hang! */
-		if (igt_live_test_end(&t)) {
+		if (igt_live_test_end(&t, gt)) {
 			err = -EIO;
 			break;
 		}
@@ -1585,7 +1585,7 @@ static int live_busywait_preempt(void *arg)
 		if (!intel_engine_can_store_dword(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			goto err_vma;
 		}
@@ -1687,7 +1687,7 @@ static int live_busywait_preempt(void *arg)
 		GEM_BUG_ON(READ_ONCE(*map));
 		i915_request_put(lo);
 
-		if (igt_live_test_end(&t)) {
+		if (igt_live_test_end(&t, gt)) {
 			err = -EIO;
 			goto err_vma;
 		}
@@ -1757,7 +1757,7 @@ static int live_preempt(void *arg)
 		if (!intel_engine_has_preemption(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			goto err_spin_lo;
 		}
@@ -1798,7 +1798,7 @@ static int live_preempt(void *arg)
 		igt_spinner_end(&spin_hi);
 		igt_spinner_end(&spin_lo);
 
-		if (igt_live_test_end(&t)) {
+		if (igt_live_test_end(&t, gt)) {
 			err = -EIO;
 			goto err_spin_lo;
 		}
@@ -1850,7 +1850,7 @@ static int live_late_preempt(void *arg)
 		if (!intel_engine_has_preemption(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			goto err_spin_lo;
 		}
@@ -1894,7 +1894,7 @@ static int live_late_preempt(void *arg)
 		igt_spinner_end(&spin_hi);
 		igt_spinner_end(&spin_lo);
 
-		if (igt_live_test_end(&t)) {
+		if (igt_live_test_end(&t, gt)) {
 			err = -EIO;
 			goto err_spin_lo;
 		}
@@ -2057,7 +2057,7 @@ static int __cancel_active0(struct live_preempt_cancel *arg)
 
 	/* Preempt cancel of ELSP0 */
 	GEM_TRACE("%s(%s)\n", __func__, arg->engine->name);
-	if (igt_live_test_begin(&t, arg->engine->i915,
+	if (igt_live_test_begin(&t, arg->engine->gt,
 				__func__, arg->engine->name))
 		return -EIO;
 
@@ -2088,7 +2088,7 @@ static int __cancel_active0(struct live_preempt_cancel *arg)
 
 out:
 	i915_request_put(rq);
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, arg->engine->gt))
 		err = -EIO;
 	return err;
 }
@@ -2101,7 +2101,7 @@ static int __cancel_active1(struct live_preempt_cancel *arg)
 
 	/* Preempt cancel of ELSP1 */
 	GEM_TRACE("%s(%s)\n", __func__, arg->engine->name);
-	if (igt_live_test_begin(&t, arg->engine->i915,
+	if (igt_live_test_begin(&t, arg->engine->gt,
 				__func__, arg->engine->name))
 		return -EIO;
 
@@ -2159,7 +2159,7 @@ static int __cancel_active1(struct live_preempt_cancel *arg)
 out:
 	i915_request_put(rq[1]);
 	i915_request_put(rq[0]);
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, arg->engine->gt))
 		err = -EIO;
 	return err;
 }
@@ -2172,7 +2172,7 @@ static int __cancel_queued(struct live_preempt_cancel *arg)
 
 	/* Full ELSP and one in the wings */
 	GEM_TRACE("%s(%s)\n", __func__, arg->engine->name);
-	if (igt_live_test_begin(&t, arg->engine->i915,
+	if (igt_live_test_begin(&t, arg->engine->gt,
 				__func__, arg->engine->name))
 		return -EIO;
 
@@ -2254,7 +2254,7 @@ static int __cancel_queued(struct live_preempt_cancel *arg)
 	i915_request_put(rq[2]);
 	i915_request_put(rq[1]);
 	i915_request_put(rq[0]);
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, arg->engine->gt))
 		err = -EIO;
 	return err;
 }
@@ -2599,7 +2599,7 @@ static int live_chain_preempt(void *arg)
 		}
 		i915_request_put(rq);
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			goto err_wedged;
 		}
@@ -2673,7 +2673,7 @@ static int live_chain_preempt(void *arg)
 			i915_request_put(rq);
 		}
 
-		if (igt_live_test_end(&t)) {
+		if (igt_live_test_end(&t, gt)) {
 			err = -EIO;
 			goto err_wedged;
 		}
@@ -2799,7 +2799,7 @@ static int __live_preempt_ring(struct intel_engine_cs *engine,
 	int err = 0;
 	int n;
 
-	if (igt_live_test_begin(&t, engine->i915, __func__, engine->name))
+	if (igt_live_test_begin(&t, engine->gt, __func__, engine->name))
 		return -EIO;
 
 	for (n = 0; n < ARRAY_SIZE(ce); n++) {
@@ -2902,7 +2902,7 @@ static int __live_preempt_ring(struct intel_engine_cs *engine,
 		intel_context_unpin(ce[n]);
 		intel_context_put(ce[n]);
 	}
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, engine->gt))
 		err = -EIO;
 	return err;
 }
@@ -2978,7 +2978,7 @@ static int live_preempt_gang(void *arg)
 		if (!intel_engine_has_preemption(engine))
 			continue;
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name))
+		if (igt_live_test_begin(&t, gt, __func__, engine->name))
 			return -EIO;
 
 		do {
@@ -3030,7 +3030,7 @@ static int live_preempt_gang(void *arg)
 			rq = n;
 		}
 
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, gt))
 			err = -EIO;
 		if (err)
 			return err;
@@ -3284,7 +3284,7 @@ static int live_preempt_user(void *arg)
 		if (GRAPHICS_VER(gt->i915) == 8 && engine->class != RENDER_CLASS)
 			continue; /* we need per-context GPR */
 
-		if (igt_live_test_begin(&t, gt->i915, __func__, engine->name)) {
+		if (igt_live_test_begin(&t, gt, __func__, engine->name)) {
 			err = -EIO;
 			break;
 		}
@@ -3347,7 +3347,7 @@ static int live_preempt_user(void *arg)
 
 		/* Flush the semaphores on error */
 		smp_store_mb(result[0], -1);
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, gt))
 			err = -EIO;
 		if (err)
 			break;
@@ -3665,7 +3665,7 @@ static int live_preempt_smoke(void *arg)
 	i915_gem_object_flush_map(smoke.batch);
 	i915_gem_object_unpin_map(smoke.batch);
 
-	if (igt_live_test_begin(&t, smoke.gt->i915, __func__, "all")) {
+	if (igt_live_test_begin(&t, smoke.gt, __func__, "all")) {
 		err = -EIO;
 		goto err_batch;
 	}
@@ -3687,7 +3687,7 @@ static int live_preempt_smoke(void *arg)
 	}
 
 err_ctx:
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, smoke.gt))
 		err = -EIO;
 
 	for (n = 0; n < smoke.ncontext; n++) {
@@ -3737,7 +3737,7 @@ static int nop_virtual_engine(struct intel_gt *gt,
 		}
 	}
 
-	err = igt_live_test_begin(&t, gt->i915, __func__, ve[0]->engine->name);
+	err = igt_live_test_begin(&t, gt, __func__, ve[0]->engine->name);
 	if (err)
 		goto out;
 
@@ -3810,7 +3810,7 @@ static int nop_virtual_engine(struct intel_gt *gt,
 			break;
 	}
 
-	err = igt_live_test_end(&t);
+	err = igt_live_test_end(&t, gt);
 	if (err)
 		goto out;
 
@@ -3928,7 +3928,7 @@ static int mask_virtual_engine(struct intel_gt *gt,
 	if (err)
 		goto out_put;
 
-	err = igt_live_test_begin(&t, gt->i915, __func__, ve->engine->name);
+	err = igt_live_test_begin(&t, gt, __func__, ve->engine->name);
 	if (err)
 		goto out_unpin;
 
@@ -3973,7 +3973,7 @@ static int mask_virtual_engine(struct intel_gt *gt,
 		}
 	}
 
-	err = igt_live_test_end(&t);
+	err = igt_live_test_end(&t, gt);
 out:
 	if (igt_flush_test(gt->i915))
 		err = -EIO;
@@ -4213,7 +4213,7 @@ static int preserved_virtual_engine(struct intel_gt *gt,
 	if (err)
 		goto out_put;
 
-	err = igt_live_test_begin(&t, gt->i915, __func__, ve->engine->name);
+	err = igt_live_test_begin(&t, gt, __func__, ve->engine->name);
 	if (err)
 		goto out_unpin;
 
@@ -4277,7 +4277,7 @@ static int preserved_virtual_engine(struct intel_gt *gt,
 	i915_gem_object_unpin_map(scratch->obj);
 
 out_end:
-	if (igt_live_test_end(&t))
+	if (igt_live_test_end(&t, gt))
 		err = -EIO;
 	i915_request_put(last);
 out_unpin:
diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c
index a9b79888c193..8f71c4bd66d9 100644
--- a/drivers/gpu/drm/i915/selftests/i915_request.c
+++ b/drivers/gpu/drm/i915/selftests/i915_request.c
@@ -582,7 +582,7 @@ static int live_nop_request(void *arg)
 		IGT_TIMEOUT(end_time);
 		ktime_t times[2] = {};
 
-		err = igt_live_test_begin(&t, i915, __func__, engine->name);
+		err = igt_live_test_begin(&t, engine->gt, __func__, engine->name);
 		if (err)
 			return err;
 
@@ -627,7 +627,7 @@ static int live_nop_request(void *arg)
 		}
 		intel_engine_pm_put(engine);
 
-		err = igt_live_test_end(&t);
+		err = igt_live_test_end(&t, engine->gt);
 		if (err)
 			return err;
 
@@ -929,7 +929,7 @@ static int live_cancel_request(void *arg)
 		if (!intel_engine_has_preemption(engine))
 			continue;
 
-		err = igt_live_test_begin(&t, i915, __func__, engine->name);
+		err = igt_live_test_begin(&t, engine->gt, __func__, engine->name);
 		if (err)
 			return err;
 
@@ -939,7 +939,7 @@ static int live_cancel_request(void *arg)
 		if (err == 0)
 			err = __cancel_completed(engine);
 
-		err2 = igt_live_test_end(&t);
+		err2 = igt_live_test_end(&t, engine->gt);
 		if (err)
 			return err;
 		if (err2)
@@ -1058,7 +1058,7 @@ static int live_empty_request(void *arg)
 		if (IS_ERR(batch))
 			return PTR_ERR(batch);
 
-		err = igt_live_test_begin(&t, i915, __func__, engine->name);
+		err = igt_live_test_begin(&t, engine->gt, __func__, engine->name);
 		if (err)
 			goto out_batch;
 
@@ -1097,7 +1097,7 @@ static int live_empty_request(void *arg)
 		i915_request_put(request);
 		intel_engine_pm_put(engine);
 
-		err = igt_live_test_end(&t);
+		err = igt_live_test_end(&t, engine->gt);
 		if (err)
 			goto out_batch;
 
@@ -1206,7 +1206,7 @@ static int live_all_engines(void *arg)
 	if (!request)
 		return -ENOMEM;
 
-	err = igt_live_test_begin(&t, i915, __func__, "");
+	err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 	if (err)
 		goto out_free;
 
@@ -1292,7 +1292,7 @@ static int live_all_engines(void *arg)
 		idx++;
 	}
 
-	err = igt_live_test_end(&t);
+	err = igt_live_test_end(&t, to_gt(i915));
 
 out_request:
 	idx = 0;
@@ -1336,7 +1336,7 @@ static int live_sequential_engines(void *arg)
 	if (!request)
 		return -ENOMEM;
 
-	err = igt_live_test_begin(&t, i915, __func__, "");
+	err = igt_live_test_begin(&t, to_gt(i915), __func__, "");
 	if (err)
 		goto out_free;
 
@@ -1423,7 +1423,7 @@ static int live_sequential_engines(void *arg)
 		idx++;
 	}
 
-	err = igt_live_test_end(&t);
+	err = igt_live_test_end(&t, to_gt(i915));
 
 out_request:
 	idx = 0;
@@ -1635,7 +1635,7 @@ static int live_parallel_engines(void *arg)
 		unsigned int idx;
 
 		snprintf(name, sizeof(name), "%ps", *fn);
-		err = igt_live_test_begin(&t, i915, __func__, name);
+		err = igt_live_test_begin(&t, to_gt(i915), __func__, name);
 		if (err)
 			break;
 
@@ -1676,7 +1676,7 @@ static int live_parallel_engines(void *arg)
 			kthread_destroy_worker(threads[idx++].worker);
 		}
 
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, to_gt(i915)))
 			err = -EIO;
 	}
 
@@ -1783,7 +1783,7 @@ static int live_breadcrumbs_smoketest(void *arg)
 		}
 	}
 
-	ret = igt_live_test_begin(&live, i915, __func__, "");
+	ret = igt_live_test_begin(&live, to_gt(i915), __func__, "");
 	if (ret)
 		goto out_contexts;
 
@@ -1853,7 +1853,7 @@ static int live_breadcrumbs_smoketest(void *arg)
 	pr_info("Completed %lu waits for %lu fences across %d engines and %d cpus\n",
 		num_waits, num_fences, idx, ncpus);
 
-	ret = igt_live_test_end(&live) ?: ret;
+	ret = igt_live_test_end(&live, to_gt(i915)) ?: ret;
 out_contexts:
 	kfree(smoke[0].contexts);
 out_threads:
@@ -2877,7 +2877,7 @@ static int perf_series_engines(void *arg)
 		struct igt_live_test t;
 
 		snprintf(name, sizeof(name), "%ps", *fn);
-		err = igt_live_test_begin(&t, i915, __func__, name);
+		err = igt_live_test_begin(&t, to_gt(i915), __func__, name);
 		if (err)
 			break;
 
@@ -2898,7 +2898,7 @@ static int perf_series_engines(void *arg)
 		}
 
 		err = (*fn)(ps);
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, to_gt(i915)))
 			err = -EIO;
 
 		for (idx = 0; idx < nengines; idx++) {
@@ -3205,7 +3205,7 @@ static int perf_parallel_engines(void *arg)
 		unsigned int idx;
 
 		snprintf(name, sizeof(name), "%ps", *fn);
-		err = igt_live_test_begin(&t, i915, __func__, name);
+		err = igt_live_test_begin(&t, to_gt(i915), __func__, name);
 		if (err)
 			break;
 
@@ -3254,7 +3254,7 @@ static int perf_parallel_engines(void *arg)
 			idx++;
 		}
 
-		if (igt_live_test_end(&t))
+		if (igt_live_test_end(&t, to_gt(i915)))
 			err = -EIO;
 		if (err)
 			break;
diff --git a/drivers/gpu/drm/i915/selftests/igt_live_test.c b/drivers/gpu/drm/i915/selftests/igt_live_test.c
index 72b58b66692a..0e7a16962549 100644
--- a/drivers/gpu/drm/i915/selftests/igt_live_test.c
+++ b/drivers/gpu/drm/i915/selftests/igt_live_test.c
@@ -12,11 +12,11 @@
 #include "igt_live_test.h"
 
 int igt_live_test_begin(struct igt_live_test *t,
-			struct drm_i915_private *i915,
+			struct intel_gt *gt,
 			const char *func,
 			const char *name)
 {
-	struct intel_gt *gt = to_gt(i915);
+	struct drm_i915_private *i915 = gt->i915;
 	struct intel_engine_cs *engine;
 	enum intel_engine_id id;
 	int err;
@@ -41,9 +41,9 @@ int igt_live_test_begin(struct igt_live_test *t,
 	return 0;
 }
 
-int igt_live_test_end(struct igt_live_test *t)
+int igt_live_test_end(struct igt_live_test *t, struct intel_gt *gt)
 {
-	struct drm_i915_private *i915 = t->i915;
+	struct drm_i915_private *i915 = gt->i915;
 	struct intel_engine_cs *engine;
 	enum intel_engine_id id;
 
@@ -57,7 +57,7 @@ int igt_live_test_end(struct igt_live_test *t)
 		return -EIO;
 	}
 
-	for_each_engine(engine, to_gt(i915), id) {
+	for_each_engine(engine, gt, id) {
 		if (t->reset_engine[id] ==
 		    i915_reset_engine_count(&i915->gpu_error, engine))
 			continue;
diff --git a/drivers/gpu/drm/i915/selftests/igt_live_test.h b/drivers/gpu/drm/i915/selftests/igt_live_test.h
index 36ed42736c52..209b0548c603 100644
--- a/drivers/gpu/drm/i915/selftests/igt_live_test.h
+++ b/drivers/gpu/drm/i915/selftests/igt_live_test.h
@@ -27,9 +27,9 @@ struct igt_live_test {
  * e.g. if the GPU was reset.
  */
 int igt_live_test_begin(struct igt_live_test *t,
-			struct drm_i915_private *i915,
+			struct intel_gt *gt,
 			const char *func,
 			const char *name);
-int igt_live_test_end(struct igt_live_test *t);
+int igt_live_test_end(struct igt_live_test *t, struct intel_gt *gt);
 
 #endif /* IGT_LIVE_TEST_H */
-- 
2.25.1



More information about the Intel-gfx mailing list