]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/selftests: Flush GPU activity before completing live_contexts
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 5 May 2018 09:10:14 +0000 (10:10 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 8 May 2018 11:44:33 +0000 (12:44 +0100)
igt_ctx_exec() expects that we retire all active requests/objects before
completing, so that when we clean up the files afterwards they are ready
to be freed. Before we do so, it is then prudent to ensure that we have
indeed retired the GPU activity, raising an error if it fails. If we do
not, we run the risk of triggering an assertion when freeing the object:

  __i915_gem_free_objects:4793 GEM_BUG_ON(i915_gem_object_is_active(obj))

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/20180505091014.26126-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/i915_gem_context.c

index 7ecaed50d0b99a7ec1a0aadac8f6f7d706ef86d3..ddb03f009232f2f05dee9b6bb6dd528e457d0114 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 #include "../i915_selftest.h"
+#include "igt_flush_test.h"
 
 #include "mock_drm.h"
 #include "huge_gem_object.h"
@@ -411,6 +412,8 @@ static int igt_ctx_exec(void *arg)
        }
 
 out_unlock:
+       if (igt_flush_test(i915, I915_WAIT_LOCKED))
+               err = -EIO;
        mutex_unlock(&i915->drm.struct_mutex);
 
        mock_file_free(i915, file);