drm/i915: Park the breadcrumbs signaler across a GPU reset
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 12 Feb 2017 17:20:01 +0000 (17:20 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 13 Feb 2017 11:18:28 +0000 (11:18 +0000)
commitfe3288b5da2c1286a7aac1fb1b2234caa752a81b
tree40d422957e6d5c2eb594b9491facd877c8a5eba9
parent1d309634bcf4e3ce1c2b112bb04fcdec82ac70e1
drm/i915: Park the breadcrumbs signaler across a GPU reset

The signal threads may be running concurrently with the GPU reset. The
completion from the GPU run asynchronous with the reset and two threads
may see different snapshots of the state, and the signaler may mark a
request as complete as we try to reset it. We don't tolerate 2 different
views of the same state and complain if we try to mark a request as
failed if it is already complete. Disable the signal threads during
reset to prevent this conflict (even though the conflict implies that
the state we resetting to is invalid, we have already made our
decision!).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99733
References: https://bugs.freedesktop.org/show_bug.cgi?id=99671
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170212172002.23072-4-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_breadcrumbs.c