[Intel-gfx] [RFC v2] drm/i915: Move execlists irq handler to a bottom half

Imre Deak imre.deak at intel.com
Thu Mar 24 22:13:22 UTC 2016


On Thu, 2016-03-24 at 19:56 +0000, Chris Wilson wrote:
> On Thu, Mar 24, 2016 at 06:40:55PM +0200, Imre Deak wrote:
> > Hm yea, I missed that it's only an execlist tasklet and so there
> > shouldn't be any pending tasklet after mark_idle(). Perhaps it
> > would
> > still make sense to assert for this in gen8_logical_ring_put_irq()
> > or
> > somewhere? Similarly there is a tasklet_kill() in
> > intel_logical_ring_cleanup(), but there shouldn't be any pending
> > tasklet there either, so should we add an assert there too?
> 
> Yes, tasklet_kill() should be a nop. We could
> 
> if (WARN_ON(test_bit(TASKLET_STATE_SCHED, &tasklet->state))
> 	tasklet_kill(&tasklet);
> 
> I don't see a particular sensible spot to assert that the engines are
> off before irq uninstall other than the assertions we have in
> execlists
> that irqs are actually enabled when we try to submit, and the battery
> of WARNs we have for trying to access the hardware whilst !rpm.

Ok, this was just a hand-wavy idea then and also this tasklet isn't
much different from other work we schedule from the interrupt handler
and we don't have special checks for those either. The above WARN_ON
would be still useful for documentation imo.

--Imre


More information about the Intel-gfx mailing list