Re: lockdep: possible reason: unannotated irqs-off. (was: Re: Linux2.6.38-rc4)

From: Thomas Gleixner
Date: Mon Feb 14 2011 - 13:54:14 EST


On Mon, 14 Feb 2011, Yong Zhang wrote:

> On Tue, Feb 08, 2011 at 03:18:00PM +0100, Peter Zijlstra wrote:
> > Subject: lockdep, timer: Revert the del_timer_sync() annotation
> >
> > Both attempts at trying to allow softirq usage failed, revert for this
> > release and try again later.
> >
> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > ---
> > kernel/timer.c | 8 +++-----
> > 1 files changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/kernel/timer.c b/kernel/timer.c
> > index 343ff27..c848cd8 100644
> > --- a/kernel/timer.c
> > +++ b/kernel/timer.c
> > @@ -959,7 +959,7 @@ EXPORT_SYMBOL(try_to_del_timer_sync);
> > *
> > * Synchronization rules: Callers must prevent restarting of the timer,
> > * otherwise this function is meaningless. It must not be called from
> > - * hardirq contexts. The caller must not hold locks which would prevent
> > + * interrupt contexts. The caller must not hold locks which would prevent
>
> I think we don't need to revert this comment.

That does not matter. It breaks stuff left and right and we need to go
back to the old (maybe less broken) state in that phase of -rc. It's
that simple.

> > * completion of the timer's handler. The timer's handler must not call
> > * add_timer_on(). Upon exit the timer is not queued and the handler is
> > * not running on any CPU.
> > @@ -971,12 +971,10 @@ int del_timer_sync(struct timer_list *timer)
> > #ifdef CONFIG_LOCKDEP
> > unsigned long flags;
> >
> > - raw_local_irq_save(flags);
> > - local_bh_disable();
> > + local_irq_save(flags);
>
> Going back to local_irq_save()/local_irq_restore() doesn't prevent
> it from using in softirq context.

That does not matter. It goes back to status quo and does not
introduce new problems. As the changelog says:

> > Both attempts at trying to allow softirq usage failed, revert for this
> > release and try again later.

So it's not forgotten. It's just not fixable right now.

Thanks,

tglx
--
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/