]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/selftests: Skip live context execution test without logical contexts
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jul 2018 10:19:23 +0000 (11:19 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jul 2018 13:05:23 +0000 (14:05 +0100)
If the HW (or driver) doesn't support logical contexts, don't pretend we
gain anything from trying to execute GPU commands with them. At best it
reports -ENODEV, which is an unhelpful failure that we should just skip.

v2: Be more specific and check the driver/engine caps for logical (HW)
context support.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180706101923.28548-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/selftests/i915_gem_context.c

index 0b36265a0f96d1fdcd165de8b2f1e88336c6dce9..0d8e719802fa2b07b3d8be0fa65d301a99dc68f2 100644 (file)
@@ -336,11 +336,15 @@ static int igt_ctx_exec(void *arg)
        bool first_shared_gtt = true;
        int err = -ENODEV;
 
-       /* Create a few different contexts (with different mm) and write
+       /*
+        * Create a few different contexts (with different mm) and write
         * through each ctx/mm using the GPU making sure those writes end
         * up in the expected pages of our obj.
         */
 
+       if (!DRIVER_CAPS(i915)->has_logical_contexts)
+               return 0;
+
        file = mock_file(i915);
        if (IS_ERR(file))
                return PTR_ERR(file);
@@ -367,6 +371,9 @@ static int igt_ctx_exec(void *arg)
                }
 
                for_each_engine(engine, i915, id) {
+                       if (!engine->context_size)
+                               continue; /* No logical context support in HW */
+
                        if (!intel_engine_can_store_dword(engine))
                                continue;