drm/i915: Taint (TAINT_WARN) the kernel if the GPU reset fails
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 5 Dec 2017 17:27:57 +0000 (17:27 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 5 Dec 2017 21:51:00 +0000 (21:51 +0000)
commit107783d00a067cd3e2ebf4564b1b8c03915186e9
tree3cad89839d5f79e31ee3bc06d8c22bbb7f7a711e
parent5888fc9eac3c2ff96e76aeeb865fdb46ab2d711e
drm/i915: Taint (TAINT_WARN) the kernel if the GPU reset fails

History tells us that if we cannot reset the GPU now, we never will. This
then impacts everything that is run subsequently. On failing the reset,
we mark the driver as wedged, trying to prevent further execution on the
GPU, forcing userspace to fallback to using the CPU to update its
framebuffers and let the user know what happened.

We also want to go one step further and add a taint to the kernel so that
any subsequent faults can be traced back to this failure. This is
useful for CI, where if the GPU/driver fails we want to reboot and
restart testing rather than continue on into oblivion. For everyone
else, the warning taint is a testament to the system unreliability.

TAINT_WARN is used anytime a WARN() is emitted, which is suitable for
our purposes here as well; the driver/system may behave unexpectedly
after the failure.

v2: Also taint if the recovery fails (again history shows us that is
typically fatal).
v3: Use TAINT_WARN

References: https://bugs.freedesktop.org/show_bug.cgi?id=103514
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: MichaƂ Winiarski <michal.winiarski@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Acked-by: Tomi Sarvela <tomi.p.sarvela@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171205172757.32609-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_drv.c