Commit f153f639 authored by Chris Wilson's avatar Chris Wilson

drm/i915/gt: Move the late flush_submission in retire to the end

Avoid flushing the submission queue (of others) under the client's
timeline lock, but instead move it to the end so that we may catch more.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/1066Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200420125356.26614-2-chris@chris-wilson.co.uk
parent a95f3ac2
...@@ -162,7 +162,7 @@ long intel_gt_retire_requests_timeout(struct intel_gt *gt, long timeout) ...@@ -162,7 +162,7 @@ long intel_gt_retire_requests_timeout(struct intel_gt *gt, long timeout)
} }
} }
if (!retire_requests(tl) || flush_submission(gt)) if (!retire_requests(tl))
active_count++; active_count++;
mutex_unlock(&tl->mutex); mutex_unlock(&tl->mutex);
...@@ -185,6 +185,9 @@ out_active: spin_lock(&timelines->lock); ...@@ -185,6 +185,9 @@ out_active: spin_lock(&timelines->lock);
list_for_each_entry_safe(tl, tn, &free, link) list_for_each_entry_safe(tl, tn, &free, link)
__intel_timeline_free(&tl->kref); __intel_timeline_free(&tl->kref);
if (flush_submission(gt)) /* Wait, there's more! */
active_count++;
return active_count ? timeout : 0; return active_count ? timeout : 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment