• Chris Wilson's avatar
    drm/i915: Record batch buffer following GPU error · 9df30794
    Chris Wilson authored
    In order to improve our diagnostic capabilities following a GPU hang
    and subsequent reset, we need to record the batch buffer that triggered
    the error. We assume that the current batch buffer, plus a few details
    about what else is on the active list, will be sufficient -- at the very
    least an improvement over nothing.
    
    The extra information is stored in /debug/dri/.../i915_error_state
    following an error, and may be decoded using
    intel_gpu_tools/tools/intel_error_decode.
    
    v2: Avoid excessive work under spinlocks.
    v3: Include ringbuffer for later analysis.
    v4: Use kunmap correctly and record more buffer state.
    v5: Search ringbuffer for current batch buffer
    v6: Use a work fn for the impossible IRQ error case.
    v7: Avoid non-atomic paths whilst in IRQ context.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarEric Anholt <eric@anholt.net>
    9df30794
i915_irq.c 40.7 KB