• Daniel Vetter's avatar
    drm/i915: clarify concurrent hang detect/gpu reset consistency · 7db0ba24
    Daniel Vetter authored
    Damien Lespiau wondered how race the gpu reset/hang detection code is
    against concurrent gpu resets/hang detections or combinations thereof.
    Luckily the single work item is guranteed to never run concurrently,
    so reset handling is already single-threaded.
    
    Hence we only have to worry about concurrent hang detections, or a
    hang detection firing off while we're still processing an older gpu
    reset request. Due to the new mechanism of setting the reset in
    progress flag and the ordering guaranteed by the schedule_work
    function there's nothing to do but add a comment explaining why we're
    safe.
    
    The only thing I've noticed is that we still try to reset the gpu now,
    even when it is declared terminally wedged. Add a check for that to
    avoid continous warnings about failed resets, in case the hangcheck
    timer ever gets stuck.
    Reviewed-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    7db0ba24
i915_irq.c 79.3 KB