Skip to content

Commit

Permalink
drm/i915/selftests: Serialise nop reset with retirement
Browse files Browse the repository at this point in the history
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. To preserve the intent of symmetry, we apply this to both
i915_reset and i915_reset_engine, even though it strictly only affects
i915_reset_engine currently.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190626134433.6318-1-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Jun 26, 2019
1 parent 5ccf202 commit d847479
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions drivers/gpu/drm/i915/gt/selftest_hangcheck.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit d847479

Please sign in to comment.