Re: [RFC][PATCH 0/3] x86/nmi: Print all cpu stacks from NMI safely

Jiri Kosina
2014-06-19T23:03:33Z

On Thu, 19 Jun 2014, Steven Rostedt wrote:

> > The idea basically is to *switch* what arch_trigger_all_cpu_backtrace()
> > and arch_trigger_all_cpu_backtrace_handler() are doing; i.e. use the NMI
> > as a way to stop all the CPUs (one by one), and let the CPU that is
> > sending the NMIs around to actually walk and dump the stacks of the CPUs
> > receiving the NMI IPI.
>
> And this is cleaner? Stopping a CPU via NMI and then what happens if
> something else goes wrong and that CPU never starts back up? This
> sounds like something that can cause more problems than it was
> reporting on.

It's going to get NMI in exactly the same situations it does with the
current arch_trigger_all_cpu_backtrace(), the only difference being that
it doesn't try to invoke printk() from inside NMI. The IPI-NMI is used
solely as a point of synchronization for the stack dumping.

> Then you also need to print out the data while the NMIs still spin.

Exactly, that's actually the whole point.

Thanks,

--
Jiri Kosina
SUSE Labs