[Intel-gfx] [PATCH] drm/i915: Keep ring->active_list and ring->requests_list consistent

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 23 02:13:36 PDT 2015


On Mon, Mar 23, 2015 at 09:49:15AM +0100, Daniel Vetter wrote:
> In case it's burried too much in the thread:
> 
> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> 
> Addadendum for the commit:
> 
> "Note that this is only a problem in evict_vm where the following happens
> after a retire_request has cleaned out all requests, but not all active
> bo:
> - intel_ring_idle called from i915_gpu_idle notices that no requests are
>   outstanding and immediately returns.
> - i915_gem_retire_requests_ring called from i915_gem_retire_requests also
>   immediately returns when there's no request, still leaving the bo on the
>   active list.
> - evict_vm hits the WARN_ON(!list_empty(&vm->active_list)) after evicting
>   all active objects that there's still stuff left that shouldn't be
>   there."
> 
> Chris, is that an accurate enough description for Jani to add to the
> patch?

Not quite. It affects everywhere where we rely on i915_gpu_idle() idling
the gpu (e.g. suspend), it is only the canary in i915_gem_evict_vm()
that first alerted us to the bug. Maybe we have some recent weird bugs in
suspend (or it may be too soon for those reports to start trickling in)?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list