[Intel-gfx] [RFC 05/11] drm/i915/preempt: Handle preemption event in guc tasklet

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 6 10:53:02 UTC 2017


On Wed, Mar 01, 2017 at 12:57:15PM +0000, Chris Wilson wrote:
> On Thu, Feb 23, 2017 at 08:14:15PM +0100, MichaƂ Winiarski wrote:
> > +static void unsubmit_inflight_requests(struct intel_engine_cs *engine,
> > +					 struct list_head *resubmit)
> > +{
> > +	struct drm_i915_gem_request *rq, *prev;
> > +
> > +	assert_spin_locked(&engine->timeline->lock);
> > +
> > +	list_for_each_entry_safe_reverse(rq, prev,
> > +					 &engine->timeline->requests, link) {
> > +		if (!i915_gem_request_completed(rq)) {
> > +			i915_gem_request_get(rq);
> > +			__i915_gem_request_unsubmit(rq);
> > +			list_add(&rq->resubmit_link, resubmit);
> 
> I was thinking it would be going back to the execlist queue, where it
> would be priority sorted against later requests.

Hmm. The execlists rbtree is setup to keep fifo ordering. We would end
up reversing the inflight requests if we are not careful. :|
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list