mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 00:29:36 -04:00
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/1066 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200420125356.26614-2-chris@chris-wilson.co.uk
This commit is contained in:
@@ -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++;
|
||||
mutex_unlock(&tl->mutex);
|
||||
|
||||
@@ -185,6 +185,9 @@ out_active: spin_lock(&timelines->lock);
|
||||
list_for_each_entry_safe(tl, tn, &free, link)
|
||||
__intel_timeline_free(&tl->kref);
|
||||
|
||||
if (flush_submission(gt)) /* Wait, there's more! */
|
||||
active_count++;
|
||||
|
||||
return active_count ? timeout : 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user