Files
linux/drivers
Chris Wilson dcff85c844 drm/i915: Enable i915_gem_wait_for_idle() without holding struct_mutex
The principal motivation for this was to try and eliminate the
struct_mutex from i915_gem_suspend - but we still need to hold the mutex
current for the i915_gem_context_lost(). (The issue there is that there
may be an indirect lockdep cycle between cpu_hotplug (i.e. suspend) and
struct_mutex via the stop_machine().) For the moment, enabling last
request tracking for the engine, allows us to do busyness checking and
waiting without requiring the struct_mutex - which is useful in its own
right.

As a side-effect of having a robust means for tracking engine busyness,
we can replace our other busyness heuristic, that of comparing against
the last submitted seqno. For paranoid reasons, we have a semi-ordered
check of that seqno inside the hangchecker, which we can now improve to
an ordered check of the engine's busyness (removing a locked xchg in the
process).

v2: Pass along "bool interruptible" as being unlocked we cannot rely on
i915->mm.interruptible being stable or even under our control.
v3: Replace check Ironlake i915_gpu_busy() with the common precalculated value

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470388464-28458-6-git-send-email-chris@chris-wilson.co.uk
2016-08-05 10:54:37 +01:00
..
2016-05-31 11:52:59 -07:00
2016-07-16 06:11:59 +09:00
2016-04-09 02:17:43 +02:00
2016-07-26 17:26:29 +10:00
2016-07-18 11:50:40 +02:00
2016-07-26 17:26:29 +10:00
2016-05-27 15:26:11 -07:00
2016-04-30 13:56:46 -07:00
2016-06-15 09:51:35 +01:00
2016-05-29 22:32:27 -07:00
2016-05-20 18:33:37 -07:00
2016-07-06 07:25:55 -07:00
2016-04-30 14:15:56 -07:00
2016-05-01 14:11:12 -07:00
2016-05-31 21:25:52 -06:00
2016-05-10 01:19:26 -07:00
2016-06-07 12:42:58 +03:00