On Fri, Feb 10, 2017 at 04:11:44PM +0200, Mika Kuoppala wrote: > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -347,9 +347,11 @@ static void execlists_submit_ports(struct intel_engine_cs *engine) > u64 desc[2]; > > GEM_BUG_ON(port[0].count > 1); > - if (!port[0].count) > + if (!port[0].count) { > + GEM_BUG_ON(!intel_engine_idle(engine)); Hmm, I actually think i915_gem_mark_busy() is a better starting point for the BUG_ON. Here it looks slightly incongruous. > execlists_context_status_change(port[0].request, > INTEL_CONTEXT_SCHEDULE_IN); > + } > desc[0] = execlists_update_context(port[0].request); > GEM_BUG_ONLY(port[0].context_id = upper_32_bits(desc[0])); > port[0].count++; > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h > index 896838c..a319df9 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.h > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h > @@ -603,6 +603,7 @@ bool intel_engine_add_wait(struct intel_engine_cs *engine, > void intel_engine_remove_wait(struct intel_engine_cs *engine, > struct intel_wait *wait); > void intel_engine_enable_signaling(struct drm_i915_gem_request *request); > +bool intel_engine_idle(struct intel_engine_cs *engine); intel_engine_is_idle() idle can be construed as a verb (and we have used it as such in the past, e.g. i915_gpu_idle()), so let's be careful. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx