Re: [PATCH] NTP: remove clock_was_set() call to prevent deadlock

From: Ingo Molnar
Date: Tue Jul 03 2007 - 15:42:19 EST



* Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:

> The clock_was_set() call in seconds_overflow() which happens only when
> leap seconds are inserted / deleted is wrong in two aspects:
>
> 1. it results in a call to on_each_cpu() with interrupts disabled
> 2. it is potential deadlock source vs. call_lock in smp_call_function()
>
> The only possible side effect of the removal might be, that an
> absolute CLOCK_REALTIME timer fires 1 second too late, in the rare
> case of leap second deletion and an absolute CLOCK_REALTIME timer
> which expires in the affected time frame. It will never fire too
> early.
>
> This was probably observed by the reporter of a June 30th -> July 1st
> hang: http://lkml.org/lkml/2007/7/3/
>
> A similar problem was observed by Dave Jones, who provided a screen
> shot with a lockdep back trace, which allowed to analyse the problem.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

looks good to me.

Acked-by: Ingo Molnar <mingo@xxxxxxx>

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/