drm/i915: Set an error status for a resubmitted request
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Jan 2017 17:22:44 +0000 (17:22 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Jan 2017 20:49:30 +0000 (20:49 +0000)
commit3c1b284759876785e31335d0f2278bfd507a1862
tree291676ee4849e4195fdc2c798085c17f750f8976
parentc0d5f32c5043e8568ffdbcff60dfba26f408fa10
drm/i915: Set an error status for a resubmitted request

Let userspace know if its request was resubmitted due to it being
executed at the time of a global reset. In this case, the reset was for
a guilty request on another engine, and this request was an innocent
victim that will be re-executed upon restarting. However, since it was
running at the time of the reset, we can not guarantee that it suffered
no ill-effects from the reset (e.g. some context state may be lost, or
some self-modifying fragment shaders will be restarted from the final
state not their initial state), to let userspace know that it has been
corrupted set a special value on the fence->error, -EAGAIN.

If the request does hang on resubmission, the error will be overwritten
with -EIO.

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: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170110172246.27297-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c