diff mbox series

[2/6] drm/i915/selftests: Drop manual request wakerefs around hangcheck

Message ID 20190626065303.31624-2-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [1/6] drm/i915/selftests: Serialise nop reset with retirement | expand

Commit Message

Chris Wilson June 26, 2019, 6:52 a.m. UTC
We no longer need to manually acquire a wakeref for request emission, so
drop the redundant wakerefs, letting us test our wakeref handling more
precisely.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 7 -------
 drivers/gpu/drm/i915/gt/selftest_reset.c     | 4 ++--
 2 files changed, 2 insertions(+), 9 deletions(-)

Comments

Chris Wilson June 26, 2019, 1:19 p.m. UTC | #1
Quoting Chris Wilson (2019-06-26 07:52:59)
> We no longer need to manually acquire a wakeref for request emission, so
> drop the redundant wakerefs, letting us test our wakeref handling more
> precisely.

References: 79ffac8599c4 ("drm/i915: Invert the GEM wakeref hierarchy")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
Mika Kuoppala June 26, 2019, 1:27 p.m. UTC | #2
Chris Wilson <chris@chris-wilson.co.uk> writes:

> We no longer need to manually acquire a wakeref for request emission, so
> drop the redundant wakerefs, letting us test our wakeref handling more
> precisely.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Riding on the request's ref and getting more fine
grained sounds good.

Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 7 -------
>  drivers/gpu/drm/i915/gt/selftest_reset.c     | 4 ++--
>  2 files changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> index 0e0b6c572ae9..cf592a049a71 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> @@ -373,7 +373,6 @@ static int igt_reset_nop(void *arg)
>  	struct i915_gem_context *ctx;
>  	unsigned int reset_count, count;
>  	enum intel_engine_id id;
> -	intel_wakeref_t wakeref;
>  	struct drm_file *file;
>  	IGT_TIMEOUT(end_time);
>  	int err = 0;
> @@ -393,7 +392,6 @@ static int igt_reset_nop(void *arg)
>  	}
>  
>  	i915_gem_context_clear_bannable(ctx);
> -	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>  	reset_count = i915_reset_count(&i915->gpu_error);
>  	count = 0;
>  	do {
> @@ -442,8 +440,6 @@ static int igt_reset_nop(void *arg)
>  	err = igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  
> -	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> -
>  out:
>  	mock_file_free(i915, file);
>  	if (i915_reset_failed(i915))
> @@ -457,7 +453,6 @@ static int igt_reset_nop_engine(void *arg)
>  	struct intel_engine_cs *engine;
>  	struct i915_gem_context *ctx;
>  	enum intel_engine_id id;
> -	intel_wakeref_t wakeref;
>  	struct drm_file *file;
>  	int err = 0;
>  
> @@ -479,7 +474,6 @@ static int igt_reset_nop_engine(void *arg)
>  	}
>  
>  	i915_gem_context_clear_bannable(ctx);
> -	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>  	for_each_engine(engine, i915, id) {
>  		unsigned int reset_count, reset_engine_count;
>  		unsigned int count;
> @@ -549,7 +543,6 @@ static int igt_reset_nop_engine(void *arg)
>  	err = igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  
> -	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
>  out:
>  	mock_file_free(i915, file);
>  	if (i915_reset_failed(i915))
> diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c b/drivers/gpu/drm/i915/gt/selftest_reset.c
> index 89da9e7cc1ba..64c2c8ab64ec 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_reset.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_reset.c
> @@ -63,8 +63,8 @@ static int igt_atomic_reset(void *arg)
>  
>  	/* Check that the resets are usable from atomic context */
>  
> +	intel_gt_pm_get(&i915->gt);
>  	igt_global_reset_lock(i915);
> -	mutex_lock(&i915->drm.struct_mutex);
>  
>  	/* Flush any requests before we get started and check basics */
>  	if (!igt_force_reset(i915))
> @@ -89,8 +89,8 @@ static int igt_atomic_reset(void *arg)
>  	igt_force_reset(i915);
>  
>  unlock:
> -	mutex_unlock(&i915->drm.struct_mutex);
>  	igt_global_reset_unlock(i915);
> +	intel_gt_pm_put(&i915->gt);
>  
>  	return err;
>  }
> -- 
> 2.20.1
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 0e0b6c572ae9..cf592a049a71 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -373,7 +373,6 @@  static int igt_reset_nop(void *arg)
 	struct i915_gem_context *ctx;
 	unsigned int reset_count, count;
 	enum intel_engine_id id;
-	intel_wakeref_t wakeref;
 	struct drm_file *file;
 	IGT_TIMEOUT(end_time);
 	int err = 0;
@@ -393,7 +392,6 @@  static int igt_reset_nop(void *arg)
 	}
 
 	i915_gem_context_clear_bannable(ctx);
-	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 	reset_count = i915_reset_count(&i915->gpu_error);
 	count = 0;
 	do {
@@ -442,8 +440,6 @@  static int igt_reset_nop(void *arg)
 	err = igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 
-	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
-
 out:
 	mock_file_free(i915, file);
 	if (i915_reset_failed(i915))
@@ -457,7 +453,6 @@  static int igt_reset_nop_engine(void *arg)
 	struct intel_engine_cs *engine;
 	struct i915_gem_context *ctx;
 	enum intel_engine_id id;
-	intel_wakeref_t wakeref;
 	struct drm_file *file;
 	int err = 0;
 
@@ -479,7 +474,6 @@  static int igt_reset_nop_engine(void *arg)
 	}
 
 	i915_gem_context_clear_bannable(ctx);
-	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 	for_each_engine(engine, i915, id) {
 		unsigned int reset_count, reset_engine_count;
 		unsigned int count;
@@ -549,7 +543,6 @@  static int igt_reset_nop_engine(void *arg)
 	err = igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 
-	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
 out:
 	mock_file_free(i915, file);
 	if (i915_reset_failed(i915))
diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c b/drivers/gpu/drm/i915/gt/selftest_reset.c
index 89da9e7cc1ba..64c2c8ab64ec 100644
--- a/drivers/gpu/drm/i915/gt/selftest_reset.c
+++ b/drivers/gpu/drm/i915/gt/selftest_reset.c
@@ -63,8 +63,8 @@  static int igt_atomic_reset(void *arg)
 
 	/* Check that the resets are usable from atomic context */
 
+	intel_gt_pm_get(&i915->gt);
 	igt_global_reset_lock(i915);
-	mutex_lock(&i915->drm.struct_mutex);
 
 	/* Flush any requests before we get started and check basics */
 	if (!igt_force_reset(i915))
@@ -89,8 +89,8 @@  static int igt_atomic_reset(void *arg)
 	igt_force_reset(i915);
 
 unlock:
-	mutex_unlock(&i915->drm.struct_mutex);
 	igt_global_reset_unlock(i915);
+	intel_gt_pm_put(&i915->gt);
 
 	return err;
 }