mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 07:04:24 +00:00
drm/i915: Keep one request in our ring_list
Don't pre-emptively retire the oldest request in our ring's list if it is the only request. We keep various bits of state alive using the active reference from the request and would rather transfer that state over to a new request rather than the more involved process of retiring and reacquiring it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180503195115.22309-2-chris@chris-wilson.co.uk
This commit is contained in:
parent
3365e2268b
commit
7c572e1bdf
1 changed files with 3 additions and 3 deletions
|
@ -695,9 +695,9 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx)
|
|||
goto err_unreserve;
|
||||
|
||||
/* Move our oldest request to the slab-cache (if not in use!) */
|
||||
rq = list_first_entry_or_null(&ring->request_list,
|
||||
typeof(*rq), ring_link);
|
||||
if (rq && i915_request_completed(rq))
|
||||
rq = list_first_entry(&ring->request_list, typeof(*rq), ring_link);
|
||||
if (!list_is_last(&rq->ring_link, &ring->request_list) &&
|
||||
i915_request_completed(rq))
|
||||
i915_request_retire(rq);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue