drm/i915/gt: execlists->active is serialised by the tasklet
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 9 Oct 2019 16:09:06 +0000 (17:09 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 9 Oct 2019 18:54:46 +0000 (19:54 +0100)
commitc36eebd9ba5d70b84e1e7408ccc7632566f285c4
tree2b0ac4203a72b14e92c8f984dfb315a051b6f575
parentc949ae431467764277cdd88d7c26ff963a9db40a
drm/i915/gt: execlists->active is serialised by the tasklet

The active/pending execlists is no longer protected by the
engine->active.lock, but is serialised by the tasklet instead. Update
the locking around the debug and stats to follow suit.

v2: local_bh_disable() to prevent recursing into the tasklet in case we
trigger a softirq (Tvrtko)

Fixes: df403069029d ("drm/i915/execlists: Lift process_csb() out of the irq-off spinlock")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191009160906.16195-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_engine.h
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/i915_gem.h