On Thu, May 28, 2015 at 06:32:36PM +0300, ville.syrj...@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Apparently we can have requests even if though the active list is empty,
> so do the request retirement regardless of whether there's anything
> on the active list.
> 
> The way it happened here is that during suspend intel_ring_idle()
> notices the olr hanging around and then proceeds to get rid of it by
> adding a request. However since there was nothing on the active lists
> i915_gem_retire_requests() didn't clean those up, and so the idle work
> never runs, and we leave the GPU "busy" during suspend resulting in a
> WARN later.

Whlist I agree (I use list_empty(&ring->request_list);) I strongly
suspect something (i.e. execlists) isn't managing the active_list
correctly. Pretty much the only thing that can generate a request
without an object (and so avoid touching the active_list) is a CS flip,
and I doubt you are using those...

Anyway,
Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: sta...@vger.linux.org
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to