Commit 86dbf52d authored by Chris Wilson's avatar Chris Wilson

drm/i915: Defer kicking the tasklet until all rescheduling is complete

Since we may kick more than engine, and may kick each one a couple of
times, coalesce the tasklet execution to the end. This also ensures that
we have the chance to run the tasklet immediately after priority
bumping.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200331114852.11583-1-chris@chris-wilson.co.uk
parent 9f7ffa29
...@@ -464,11 +464,15 @@ int i915_sched_node_add_dependency(struct i915_sched_node *node, ...@@ -464,11 +464,15 @@ int i915_sched_node_add_dependency(struct i915_sched_node *node,
if (!dep) if (!dep)
return -ENOMEM; return -ENOMEM;
local_bh_disable();
if (!__i915_sched_node_add_dependency(node, signal, dep, if (!__i915_sched_node_add_dependency(node, signal, dep,
I915_DEPENDENCY_EXTERNAL | I915_DEPENDENCY_EXTERNAL |
I915_DEPENDENCY_ALLOC)) I915_DEPENDENCY_ALLOC))
i915_dependency_free(dep); i915_dependency_free(dep);
local_bh_enable(); /* kick submission tasklet */
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment