On Mon, May 05, 2014 at 11:49:12AM -0700, Ben Widawsky wrote: > On Mon, May 05, 2014 at 09:07:33AM +0100, Chris Wilson wrote: > > During the review of > > > > commit 1f70999f9052f5a1b0ce1a55aff3808f2ec9fe42 > > Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > Date: Mon Jan 27 22:43:07 2014 +0000 > > > > drm/i915: Prevent recursion by retiring requests when the ring is full > > > > Ville raised the point that our interaction with request->tail was > > likely to foul up other uses elsewhere (such as hang check comparing > > ACTHD against requests). > > > > However, we also need to restore the implicit retire requests that certain > > test cases depend upon (e.g. igt/gem_exec_lut_handle), this raises the > > spectre that the ppgtt will randomly call i915_gpu_idle() and recurse > > back into intel_ring_begin(). > > Forgive my ignorance. Why is i915_gpu_idle() randomly being called for > PPGTT? I don't see anything PPGTT specific here. commit 1f70999f9052f5a1b0ce1a55aff3808f2ec9fe42 Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Date: Mon Jan 27 22:43:07 2014 +0000 drm/i915: Prevent recursion by retiring requests when the ring is full As the VM do not track activity of objects and instead use a large hammer to forcibly idle and evict all of their associated objects when one is released, it is possible for that to cause a recursion when we need to wait for free space on a ring and call retire requests. (intel_ring_begin -> intel_ring_wait_request -> i915_gem_retire_requests_ring -> i915_gem_context_free -> i915_gem_evict_vm -> i915_gpu_idle -> intel_ring_begin etc) In order to remove the requirement for calling retire-requests from intel_ring_wait_request, we have to inline a couple of steps from retiring requests, notably we have to record the position of the request we wait for and use that to update the available ring space. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx