[Intel-gfx] [PATCH 1/6] drm/i915/selftests: Serialise nop reset with retirement
Mika Kuoppala
mika.kuoppala at linux.intel.com
Wed Jun 26 13:11:49 UTC 2019
Chris Wilson <chris at chris-wilson.co.uk> 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 at linux.intel.com>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> 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
More information about the Intel-gfx
mailing list