diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-09-09 14:11:52 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-09-09 14:23:04 +0100 |
commit | 780f262a703a683bc56bbb860b25286a6f501d61 (patch) | |
tree | c31bdc885b028ae07757331ceebbcb3ebcc823b3 /drivers/gpu/drm/i915/intel_engine_cs.c | |
parent | 221fe7994554cc3985fc5d761ed7e44dcae0fa52 (diff) | |
download | talos-obmc-linux-780f262a703a683bc56bbb860b25286a6f501d61.tar.gz talos-obmc-linux-780f262a703a683bc56bbb860b25286a6f501d61.zip |
drm/i915: Replace wait-on-mutex with wait-on-bit in reset worker
Since we have a cooperative mode now with a direct reset, we can avoid
the contention on struct_mutex and instead try then sleep on the
I915_RESET_IN_PROGRESS bit. If the mutex is held and that bit is
cleared, all is fine. Otherwise, we sleep for a bit and try again. In
the worst case we sleep for an extra second waiting for the mutex to be
released (no one touching the GPU is allowed the struct_mutex whilst the
I915_RESET_IN_PROGRESS bit is set). But when we have a direct reset,
this allows us to clean up the reset worker faster.
v2: Remember to call wake_up_bit() after changing (for the faster wakeup
as promised)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160909131201.16673-12-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/intel_engine_cs.c')
0 files changed, 0 insertions, 0 deletions