[Intel-gfx] [PATCH 3/7] drm/i915/selftests: Serialise nop reset with retirement
Chris Wilson
chris at chris-wilson.co.uk
Sat Jun 22 10:42:12 UTC 2019
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.
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