On Wed, Mar 12, 2014 at 01:03:53PM +0000, Chris Wilson wrote: > A common issue we have is that retiring requests causes recursion > through GTT manipulation or page table manipulation which we can only > handle at very specific points. However, to maintain internal > consistency (enforced through our sanity checks on write_domain at > various points in the GEM object lifecycle) we do need to retire the > object prior to marking it with a new write_domain, and also clear the > write_domain for the implicit flush following a batch. > > Note that this then allows the unbound objects to still be on the active > lists, and so care must be taken when removing objects from unbound lists > (similar to the caveats we face processing the bound lists). > > v2: Fix i915_gem_shrink_all() to handle updated object lifetime rules, > by refactoring it to call into __i915_gem_shrink(). > > v3: Missed an object-retire prior to changing cache domains in > i915_gem_object_set_cache_leve() > > v4: Rebase > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> This can have my Tested-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> It fixes the vma unbind recursion issues that have plagued my ivb with full ppgtt as I noted here: https://bugs.freedesktop.org/show_bug.cgi?id=73383#c29 -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx