From: Chris Wilson Date: Mon, 27 Jan 2014 22:43:07 +0000 (+0000) Subject: drm/i915: Prevent recursion by retiring requests when the ring is full X-Git-Tag: v3.15-rc1~51^2~62^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f70999f9052f5a1b0ce1a55aff3808f2ec9fe42;p=pandora-kernel.git 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. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter --- Reading git-diff-tree failed