OSDN Git Service

drm/i915/guc: Disable semaphores when using GuC scheduling
authorMatthew Brost <matthew.brost@intel.com>
Wed, 21 Jul 2021 21:50:56 +0000 (14:50 -0700)
committerJohn Harrison <John.C.Harrison@Intel.com>
Thu, 22 Jul 2021 17:07:20 +0000 (10:07 -0700)
Semaphores are an optimization and not required for basic GuC submission
to work properly. Disable until we have time to do the implementation to
enable semaphores and tune them for performance. Also long direction is
just to delete semaphores from the i915 so another reason to not enable
these for GuC submission.

This patch fixes an existing bugs where I915_ENGINE_HAS_SEMAPHORES was
not honored correctly.

v2: Reword commit message
v3:
 (John H)
  - Add text to commit indicating this also fixing an existing bug
v4:
 (John H)
  - s/bug/bugs

Cc: John Harrison <john.c.harrison@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210721215101.139794-14-matthew.brost@intel.com
drivers/gpu/drm/i915/gem/i915_gem_context.c

index bf2a231..89ca401 100644 (file)
@@ -799,7 +799,8 @@ static int intel_context_set_gem(struct intel_context *ce,
        }
 
        if (ctx->sched.priority >= I915_PRIORITY_NORMAL &&
-           intel_engine_has_timeslices(ce->engine))
+           intel_engine_has_timeslices(ce->engine) &&
+           intel_engine_has_semaphores(ce->engine))
                __set_bit(CONTEXT_USE_SEMAPHORES, &ce->flags);
 
        if (IS_ACTIVE(CONFIG_DRM_I915_REQUEST_TIMEOUT) &&
@@ -1778,7 +1779,8 @@ static void __apply_priority(struct intel_context *ce, void *arg)
        if (!intel_engine_has_timeslices(ce->engine))
                return;
 
-       if (ctx->sched.priority >= I915_PRIORITY_NORMAL)
+       if (ctx->sched.priority >= I915_PRIORITY_NORMAL &&
+           intel_engine_has_semaphores(ce->engine))
                intel_context_set_use_semaphores(ce);
        else
                intel_context_clear_use_semaphores(ce);