]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Speed up idle detection by kicking the tasklets
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 6 May 2018 17:13:28 +0000 (18:13 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 19 May 2018 11:50:57 +0000 (12:50 +0100)
commitfe1d1b3a621c46f0c588d51d7c0c7726dcbdacd3
treebbd198421f8966c0e8067563d6d6df4aa356c6e0
parentb6cf669e76280f6fee888c05a32af0039cccb61b
drm/i915: Speed up idle detection by kicking the tasklets

We rely on ksoftirqd to run in a timely fashion in order to drain the
execlists queue. Quite frequently, it does not. In some cases we may see
latencies of over 200ms triggering our idle timeouts and forcing us to
declare the driver wedged!

Thus we can speed up idle detection by bypassing ksoftirqd in these
cases and flush our tasklet to confirm if we are indeed still waiting
for the ELSP to drain.

v2: Put the execlists.first check back; it is required for handling
reset!

References: https://bugs.freedesktop.org/show_bug.cgi?id=106373
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>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180506171328.30034-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_engine_cs.c