Re: [RFC PATCH 13/13] m68k: mvme16x: Convert to clocksource APIy

From: Finn Thain
Date: Tue Nov 13 2018 - 17:33:22 EST


On Tue, 13 Nov 2018, Thomas Gleixner wrote:

> On Wed, 14 Nov 2018, Finn Thain wrote:
> >
> > What I mean by that is, the interrupt level (IPL) prevents interrupt
> > handlers from being re-entered. But a handler can still get
> > interrupted by a higher priority interrupt request. In the past I've
> > had to add defensive locking because of this.
> >
> > In these patches I've assumed it was possible for some higher priority
> > interrupt handler to perform a clocksource read after the timer
> > handler started executing. Hence the use of local_irq_save/restore.
> >
> > To be sure, I've just run a quick test and confirmed that the timer
> > handler can indeed get interrupted by the ethernet interrupt handler.
>
> Urgh. Then you have more serious trouble. If the interrupting handler
> calls any of the time accessor functions then you can actually live lock
> when the interrupt happens in the middle of the write locked section of
> the core timekeeping update.

Does this apply to arch_gettimeoffset also? If so, that would mean another
bug fix patch for -stable...

> So you really want to disable interrupts across the whole timer
> interrupt function or make sure that the timer interrupt is the highest
> priority one on the system.
>

The timer interrupt priority isn't always what one would hope.

But I can certainly disable interrupts for timer_interrupt() execution
(that is, xtime_update() etc.)

--

> Thanks,
>
> tglx
>