Hi, Reworked patchset for guilty context detection. Main changes since the last posting: - i915_add_request cleanup - i915_switch_context returns ERR_PTR - 3 seconds to declare hang regardless if guilty was found - semaphore kicking for hung rings (from Chris) - test case for the new interface - interface is now included to have common base for discussions. Thank you all who provided feedback. The tree can be found here: https://github.com/mkuoppal/linux/commits/arb-robustness And testcase for i-g-t here: https://github.com/mkuoppal/intel-gpu-tools/tree/arb-robustness -Mika Chris Wilson (1): drm/i915: Resurrect ring kicking for semaphores, selectively Mika Kuoppala (15): drm/i915: return context from i915_switch_context() drm/i915: cleanup i915_add_request drm/i915: reference count for i915_hw_contexts drm/i915: pass seqno to i915_hangcheck_ring_idle drm/i915: track ring progression using seqnos drm/i915: introduce i915_hangcheck_ring_hung drm/i915: detect hang using per ring hangcheck_score drm/i915: remove i915_hangcheck_hung drm/i915: add struct ctx_reset_state drm/i915: add reset_state for hw_contexts drm/i915: add batch object and context to i915_add_request() drm/i915: mark rings which were waiting when hang happened drm/i915: find guilty batch buffer on ring resets drm/i915: refuse to submit more batchbuffers from guilty context drm/i915: add i915_gem_context_get_reset_status_ioctl drivers/gpu/drm/i915/i915_dma.c | 5 +- drivers/gpu/drm/i915/i915_drv.c | 84 +++++++++++++++- drivers/gpu/drm/i915/i915_drv.h | 57 +++++++++-- drivers/gpu/drm/i915/i915_gem.c | 130 ++++++++++++++++++++++-- drivers/gpu/drm/i915/i915_gem_context.c | 97 +++++++++++++++--- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 24 ++++- drivers/gpu/drm/i915/i915_irq.c | 151 ++++++++++++++++------------ drivers/gpu/drm/i915/intel_overlay.c | 4 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 4 + include/uapi/drm/i915_drm.h | 28 ++++++ 11 files changed, 481 insertions(+), 105 deletions(-) -- 1.7.9.5