[Intel-gfx] [PATCH] drm/i915/fence: Do not use TIMER_IRQSAFE

Thomas Gleixner tglx at linutronix.de
Thu Feb 28 10:09:26 UTC 2019


On Thu, 28 Feb 2019, Chris Wilson wrote:

> Quoting Sebastian Andrzej Siewior (2019-02-26 16:00:38)
> > On 2019-02-12 17:28:57 [+0100], To linux-kernel at vger.kernel.org wrote:
> > > The timer is initialized with TIMER_IRQSAFE flag. It does look like the
> > > timer callback requires this flag at all. Its sole purpose is to ensure
> > > synchronisation in the workqueue code.
> > > 
> > > Remove TIMER_IRQSAFE flag because it is not required.
> > 
> > ping
> 
> We call del_timer_sync from irq context, which mandates using
> TIMER_IRQSAFE. Failure to do so results in lots of explosions across CI
> -- every machine managed to hit the warning.
> 
> It may not be the best of api, but it's the only one available for the
> driver to use...

The comment in the header files says clearly:

 * Note: The irq disabled callback execution is a special case for
 * workqueue locking issues. It's not meant for executing random crap
 * with interrupts disabled. Abuse is monitored!                                   

So what's so special in drm that you need to call del_timer_sync() from
interrupt context?

Thanks

	tglx






More information about the dri-devel mailing list