Re: [PATCH 1/6] drm/i915/selftests: Serialise nop reset with retirement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes:

> In order for the reset count to be accurate across our selftest, we need
> to prevent the background retire worker from modifying our expected
> state.
>

Ok, to summarize the irc discussion we had: The above holds true
for igt_reset_engine_nop only. As there is no race in
global reset path...currently.

But there is intent towards symmetry on both paths
so it makes sense to keep the tests aligned.

The commit msg could be enhanced on this regard.

Also while looking through this, we do increase
the reset_count rather early before the failpaths.
even with the resets disabled it gets incremented.
So now it is more of a attempted reset count.

But that is not a topic for this patch so,
Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>

> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> index 3ceb397c8645..0e0b6c572ae9 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> @@ -398,6 +398,7 @@ static int igt_reset_nop(void *arg)
>  	count = 0;
>  	do {
>  		mutex_lock(&i915->drm.struct_mutex);
> +
>  		for_each_engine(engine, i915, id) {
>  			int i;
>  
> @@ -413,11 +414,12 @@ static int igt_reset_nop(void *arg)
>  				i915_request_add(rq);
>  			}
>  		}
> -		mutex_unlock(&i915->drm.struct_mutex);
>  
>  		igt_global_reset_lock(i915);
>  		i915_reset(i915, ALL_ENGINES, NULL);
>  		igt_global_reset_unlock(i915);
> +
> +		mutex_unlock(&i915->drm.struct_mutex);
>  		if (i915_reset_failed(i915)) {
>  			err = -EIO;
>  			break;
> @@ -511,9 +513,8 @@ static int igt_reset_nop_engine(void *arg)
>  
>  				i915_request_add(rq);
>  			}
> -			mutex_unlock(&i915->drm.struct_mutex);
> -
>  			err = i915_reset_engine(engine, NULL);
> +			mutex_unlock(&i915->drm.struct_mutex);
>  			if (err) {
>  				pr_err("i915_reset_engine failed\n");
>  				break;
> -- 
> 2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux