Commit 41e4065a authored by Chris Wilson's avatar Chris Wilson

drm/i915: Rely on direct submission to the queue

Drop the pretense of kicking the tasklet (used only for the defunct guc
submission backend, it should just take ownership of the submit!) and so
remove the bh-kicking from around submission.
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/20200323092841.22240-5-chris@chris-wilson.co.uk
parent 93159e12
...@@ -2386,9 +2386,7 @@ static void eb_request_add(struct i915_execbuffer *eb) ...@@ -2386,9 +2386,7 @@ static void eb_request_add(struct i915_execbuffer *eb)
__i915_request_skip(rq); __i915_request_skip(rq);
} }
local_bh_disable();
__i915_request_queue(rq, &attr); __i915_request_queue(rq, &attr);
local_bh_enable(); /* Kick the execlists tasklet if just scheduled */
/* Try to clean up the client's timeline after submitting the request */ /* Try to clean up the client's timeline after submitting the request */
if (prev) if (prev)
......
...@@ -2891,10 +2891,7 @@ static void __submit_queue_imm(struct intel_engine_cs *engine) ...@@ -2891,10 +2891,7 @@ static void __submit_queue_imm(struct intel_engine_cs *engine)
if (reset_in_progress(execlists)) if (reset_in_progress(execlists))
return; /* defer until we restart the engine following reset */ return; /* defer until we restart the engine following reset */
if (execlists->tasklet.func == execlists_submission_tasklet) __execlists_submission_tasklet(engine);
__execlists_submission_tasklet(engine);
else
tasklet_hi_schedule(&execlists->tasklet);
} }
static void submit_queue(struct intel_engine_cs *engine, static void submit_queue(struct intel_engine_cs *engine,
......
...@@ -1444,9 +1444,7 @@ void i915_request_add(struct i915_request *rq) ...@@ -1444,9 +1444,7 @@ void i915_request_add(struct i915_request *rq)
if (list_empty(&rq->sched.signalers_list)) if (list_empty(&rq->sched.signalers_list))
attr.priority |= I915_PRIORITY_WAIT; attr.priority |= I915_PRIORITY_WAIT;
local_bh_disable();
__i915_request_queue(rq, &attr); __i915_request_queue(rq, &attr);
local_bh_enable(); /* Kick the execlists tasklet if just scheduled */
mutex_unlock(&tl->mutex); mutex_unlock(&tl->mutex);
} }
......
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