linux/arch/x86/platform/uv
Mike Travis d0a9964e98 x86/platform/uv: Implement simple dump failover if kdump fails
The ability to trigger a kdump using the system NMI command
was added by

    commit 12ba6c990f ("x86/UV: Add kdump to UV NMI handler")
    Author: Mike Travis <travis@sgi.com>
    Date:   Mon Sep 23 16:25:03 2013 -0500

This is useful because when kdump is working the information
gathered is more informative than the original per CPU stack
traces or "dump" option.  However a number of things can go
wrong with kdump and then the stack traces are more useful than
nothing.

The two most common reasons for kdump to not be available are:

  1) if a problem occurs during boot before the kdump service is
     started, or
  2) the kdump daemon failed to start.

In either case the call to crash_kexec() returns unexpectedly.

When this happens uv_nmi_kdump() also sets the
uv_nmi_kexec_failed flag which causes the slave CPU's to also
return to the NMI handler. Upon this unexpected return to the
NMI handler, the NMI handler will revert to the "dump" action
which uses show_regs() to obtain a process trace dump for all
the CPU's.

Other minor changes:
    The "dump" action now generates both the show_regs() stack trace
    and show instruction pointer information.  Whereas the "ips"
    action only shows instruction pointers for non-idle CPU's.  This
    is more like an abbreviated "ps" display.

    Change printk(KERN_DEFAULT...) --> pr_info()

Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: George Beshers <gbeshers@sgi.com>
Cc: Alex Thorlton <athorlton@sgi.com>
Cc: Dimitri Sivanich <sivanich@sgi.com>
Cc: Hedi Berriche <hedi@sgi.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russ Anderson <rja@sgi.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-09-14 15:31:30 +02:00
..
Makefile x86/UV: Move NMI support 2013-09-24 09:02:02 +02:00
bios_uv.c x86/efi: Delete most of the efi_call* macros 2014-04-17 13:26:30 +01:00
tlb_uv.c x86: Fix up obsolete __cpu_set() function usage 2015-03-02 14:28:17 +01:00
uv_irq.c x86/irq: Use accessor irq_data_get_node() 2015-07-13 21:22:46 +02:00
uv_nmi.c x86/platform/uv: Implement simple dump failover if kdump fails 2015-09-14 15:31:30 +02:00
uv_sysfs.c driver-core: remove sysdev.h usage. 2011-12-21 16:26:03 -08:00
uv_time.c x86/uv/time: Migrate to new set-state interface 2015-07-30 21:25:38 +02:00