]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Disable tasklet scheduling across initial scheduling
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 7 May 2018 13:57:26 +0000 (14:57 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 8 May 2018 13:59:16 +0000 (14:59 +0100)
commit9b36284aa36b4d811d1708ebb07a5564452344cd
tree82e59e510c5ebd5779600ceba7f20eb6de93774f
parent1e7040eee92e1faf15a500a06d9efe6cba10e8ea
drm/i915: Disable tasklet scheduling across initial scheduling

During request submission, we call the engine->schedule() function so
that we may reorder the active requests as required for inheriting the
new request's priority. This may schedule several tasklets to run on the
local CPU, but we will need to schedule the tasklets again for the new
request. Delay all the local tasklets until the end, so that we only
have to process the queue just once.

v2: Beware PREEMPT_RCU, as then local_bh_disable() is then not a
superset of rcu_read_lock().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180507135731.10587-2-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/i915_request.c