On Thu, May 28, 2015 at 07:03:23PM +0300, Ville Syrjälä wrote: > On Thu, May 28, 2015 at 04:47:49PM +0100, Chris Wilson wrote: > > On Thu, May 28, 2015 at 06:32:36PM +0300, ville.syrjala@xxxxxxxxxxxxxxx wrote: > > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > > > > > 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... > > Oh, I forgot to mention that this was in ringbuffer mode. I guess I > should try execlist too. Now I am even more curious where the partial request came from. Anyhow, it is immaterial since olr is just a great big wart overdue for replacement. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx