* Andi Kleen <[email protected]> wrote:
> Ingo Molnar <[email protected]> writes:
> >
> > The NMI watchdog uses spinlocks (notifier chains, etc.),
> > so it's not lockdep-safe at the moment.
>
> That's totally unsafe even without lockdep and should be fixed
> instead. I guess someone bungled the notifier chain conversion. The
> NMI notifiers need to be lockless.
yeah, totally agreed, they need to be raw notifiers. Havent had time to
investigate it in detail yet - i went for the easier hack of disabling
NMIs while lockdep is enabled.
Here's the kernel trace of it happening on x86_64:
<...>-417 0D... 2983us : __lockdep_acquire (ffffffff81a5cb18 0 0)
<...>-417 0D... 2983us : __lockdep_acquire (0 0 0)
<...>-417 0D... 2984us : do_nmi (nmi)
<...>-417 0D.h. 2985us : default_do_nmi (do_nmi)
<...>-417 0D.h. 2986us : atomic_notifier_call_chain (default_do_nmi)
<...>-417 0D.h. 2986us : notifier_call_chain (atomic_notifier_call_chain)
<...>-417 0D.h. 2987us : nmi_watchdog_tick (default_do_nmi)
<...>-417 0D.h. 2987us : atomic_notifier_call_chain (nmi_watchdog_tick)
<...>-417 0D.h. 2987us : notifier_call_chain (atomic_notifier_call_chain)
<...>-417 0D... 2988us : trace_hardirqs_off (trace_hardirqs_off_thunk)
<...>-417 0D... 2989us : __lockdep_acquire (1 1 0)
<...>-417 0D... 2989us : mark_lock (__lockdep_acquire)
<...>-417 0D... 2989us : mark_lock (__lockdep_acquire)
<...>-417 0D... 2989us+: mark_lock (__lockdep_acquire)
<...>-417 0D... 2991us : check_chain_key (__lockdep_acquire)
<...>-417 0.... 2992us : _raw_spin_lock (_spin_lock)
<...>-417 0.... 2992us : _spin_lock (dput)
that shouldnt be an atomic_notifier but a raw_notifier.
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- 2.6.17-rc5-mm1
- [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug
- [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386
- Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]