Re: [RFC][PATCH 12/12 v3] x86/nmi: Perform a safe NMI stack trace on all CPUs

From: Jiri Kosina
Date: Tue Nov 04 2014 - 18:05:22 EST


On Tue, 4 Nov 2014, Steven Rostedt wrote:

> From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx>
>
> When trigger_all_cpu_backtrace() is called on x86, it will trigger an
> NMI on each CPU and call show_regs(). But this can lead to a hard lock
> up if the NMI comes in on another printk().
>
> In order to avoid this, when the NMI triggers, it switches the printk
> routine for that CPU to call a NMI safe printk function that records the
> printk in a per_cpu seq_buf descriptor. After all NMIs have finished
> recording its data, the trace_seqs are printed in a safe context.
>
> Link: http://lkml.kernel.org/p/20140619213952.360076309@xxxxxxxxxxx
>
> Acked-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>

I've been running the whole machinery that used to trigger very quickly
the complete hardlock of the machine (*) for the whole evening/night, and
it's still running flawlessly.

Plus, as I said previously, I agree with the whole idea (given the
general nastiness of the problem and given the fact this simply has to be
fixed without pointless delays).

I.e FWIW

Tested-by: Jiri Kosina <jkosina@xxxxxxx>
Acked-by: Jiri Kosina <jkosina@xxxxxxx>

for the whole series.

(*) heavy printk() workload (**) + sysrq-l in parallel
(**) iptables logging every incoming packet + flood ping from another
machine

Thanks,

--
Jiri Kosina
SUSE Labs
--
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/