• Chris Wilson's avatar
    drm/i915/execlists: Assert the queue is non-empty on unsubmitting · 8db05f59
    Chris Wilson authored
    In the sequence
    
    <0>[  531.960431] drv_self-4806    7.... 527402570us : intel_gpu_reset: engine_mask=1, ret=0, retry=0
    <0>[  531.960431] drv_self-4806    7.... 527402571us : execlists_reset: rcs0 request global=115de, current=71133
    <0>[  531.960431] drv_self-4806    7d..1 527402571us : execlists_cancel_port_requests: rcs0:port0 global=71134 (fence 826b:198), (current 71133)
    <0>[  531.960431] drv_self-4806    7d..1 527402572us : execlists_cancel_port_requests: rcs0:port1 global=71135 (fence 826c:53), (current 71133)
    <0>[  531.960431] drv_self-4806    7d..1 527402572us : __i915_request_unsubmit: rcs0 fence 826c:53 <- global=71135, current 71133
    <0>[  531.960431] drv_self-4806    7d..1 527402579us : __i915_request_unsubmit: rcs0 fence 826b:198 <- global=71134, current 71133
    <0>[  531.960431] drv_self-4806    7.... 527402613us : intel_engine_cancel_stop_cs: rcs0
    <0>[  531.960431] drv_self-4806    7.... 527402624us : execlists_reset_finish: rcs0
    
    we are missing the execlists_submission_tasklet() invocation before the
    execlists_reset_fini() implying that either the queue is empty, or we
    failed to schedule and run the tasklet on finish. Add an assert so we
    are sure that on unsubmitting the incomplete request after reset, the
    queue is indeed populated.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180919195544.1511-12-chris@chris-wilson.co.uk
    8db05f59
intel_lrc.c 86.6 KB