Commit f153f639 authored by Chris Wilson's avatar Chris Wilson
Browse files

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: 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
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;
}