Re: [Intel-gfx] [PATCH] drm/i915/fence: Do not use TIMER_IRQSAFE
From: Thomas Gleixner
Date: Thu Feb 28 2019 - 05:09:37 EST
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@xxxxxxxxxxxxxxx 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