On Tue, Dec 06, 2011 at 12:12:33PM +0100, Daniel Vetter wrote: > The recursion loop goes retire_requests->unbind->gpu_idle->retire_reqeusts. > > Every time we go through this we need a > - active object that can be retired > - and there are no other references to that object than the one from > the active list, so that it gets unbound and freed immediately. > Otherwise the recursion stops. So the recursion is only limited by the > number of objects that fit these requirements sitting in the active list > any time retire_request is called. > > Issue exercised by tests/gem_unref_active_buffers from i-g-t. > > There's been a decent bikeshed discussion whether it wouldn't be > better to pass around a flag, but imo this is o.k. for such a limited > case that only supports a w/a. > > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch> > Reviewed-by: Chris Wilson <chris at chris-wilson> # we built better > bikesheds, but this keeps the rain off for now > --- What about: http://lists.freedesktop.org/archives/intel-gfx/2011-October/012984.html Did someone prove that doesn't work?