Use the live_test struct to record the reset count before and compare it
at the end of the test to assert that no mystery hang occurred during the
test.

Signed-off-by: Chris Wilson <[email protected]>
---
 .../gpu/drm/i915/selftests/i915_gem_context.c | 22 ++++++++++++++-----
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c 
b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
index 913c0f83f86a..ea165a644d79 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
@@ -531,10 +531,11 @@ static int igt_ctx_exec(void *arg)
 {
        struct drm_i915_private *i915 = arg;
        struct drm_i915_gem_object *obj = NULL;
+       unsigned long ncontexts, ndwords, dw;
        struct drm_file *file;
        IGT_TIMEOUT(end_time);
        LIST_HEAD(objects);
-       unsigned long ncontexts, ndwords, dw;
+       struct live_test t;
        int err = -ENODEV;
 
        /*
@@ -552,6 +553,10 @@ static int igt_ctx_exec(void *arg)
 
        mutex_lock(&i915->drm.struct_mutex);
 
+       err = begin_live_test(&t, i915, __func__, "");
+       if (err)
+               goto out_unlock;
+
        ncontexts = 0;
        ndwords = 0;
        dw = 0;
@@ -616,7 +621,7 @@ static int igt_ctx_exec(void *arg)
        }
 
 out_unlock:
-       if (igt_flush_test(i915, I915_WAIT_LOCKED))
+       if (end_live_test(&t))
                err = -EIO;
        mutex_unlock(&i915->drm.struct_mutex);
 
@@ -628,13 +633,14 @@ static int igt_ctx_readonly(void *arg)
 {
        struct drm_i915_private *i915 = arg;
        struct drm_i915_gem_object *obj = NULL;
+       struct i915_gem_context *ctx;
+       struct i915_hw_ppgtt *ppgtt;
+       unsigned long ndwords, dw;
        struct drm_file *file;
        I915_RND_STATE(prng);
        IGT_TIMEOUT(end_time);
        LIST_HEAD(objects);
-       struct i915_gem_context *ctx;
-       struct i915_hw_ppgtt *ppgtt;
-       unsigned long ndwords, dw;
+       struct live_test t;
        int err = -ENODEV;
 
        /*
@@ -649,6 +655,10 @@ static int igt_ctx_readonly(void *arg)
 
        mutex_lock(&i915->drm.struct_mutex);
 
+       err = begin_live_test(&t, i915, __func__, "");
+       if (err)
+               goto out_unlock;
+
        ctx = i915_gem_create_context(i915, file->driver_priv);
        if (IS_ERR(ctx)) {
                err = PTR_ERR(ctx);
@@ -721,7 +731,7 @@ static int igt_ctx_readonly(void *arg)
        }
 
 out_unlock:
-       if (igt_flush_test(i915, I915_WAIT_LOCKED))
+       if (end_live_test(&t))
                err = -EIO;
        mutex_unlock(&i915->drm.struct_mutex);
 
-- 
2.19.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to