Re: NOHZ: WARNING: at arch/x86/kernel/smp.c:123native_smp_send_reschedule

From: Ingo Molnar
Date: Fri May 10 2013 - 05:37:37 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> 2013/5/10 Borislav Petkov <bp@xxxxxxxxx>:
> > On Fri, May 10, 2013 at 02:29:31AM +0200, Frederic Weisbecker wrote:
> >> @@ -616,8 +616,17 @@ static bool wake_up_full_nohz_cpu(int cpu)
> >> {
> >> if (tick_nohz_full_cpu(cpu)) {
> >> if (cpu != smp_processor_id() ||
> >> - tick_nohz_tick_stopped())
> >> + tick_nohz_tick_stopped()) {
> >> + if (!cpu_online(cpu)) {
> >> + static int printed = 0;
> >> + if (!printed) {
> >> + printk("%d %d\n", cpu, smp_processor_id());
> >> + dump_stack();
> >> + printed = 1;
> >
> > You know about printk_once, right? We even have all the pr_<level>_once
> > macros.
> >
> > :-)
>
> But but that didn't fit as I also want the dump_stack(). May be we
> want dump_stack_once().

The pattern I use in such cases is:

if (WARN_ONCE(!cpu_online(cpu))) {
printk("%d %d\n", cpu, smp_processor_id());
dump_stack();
}

Thanks,

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/