[PATCH] x86_64: x86_64 add crashdump trigger points
o Start booting into the capture kernel after an Oops if system is in a unrecoverable state. System will boot into the capture kernel, if one is pre-loaded by the user, and capture the kernel core dump. o One of the following conditions should be true to trigger the booting of capture kernel. - panic_on_oops is set. - pid of current thread is 0 - pid of current thread is 1 - Oops happened inside interrupt context. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
87cb23a48c
commit
8bcc5280e6
@ -30,6 +30,7 @@
|
|||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/nmi.h>
|
#include <linux/nmi.h>
|
||||||
#include <linux/kprobes.h>
|
#include <linux/kprobes.h>
|
||||||
|
#include <linux/kexec.h>
|
||||||
|
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
@ -433,6 +434,8 @@ void __kprobes __die(const char * str, struct pt_regs * regs, long err)
|
|||||||
printk(KERN_ALERT "RIP ");
|
printk(KERN_ALERT "RIP ");
|
||||||
printk_address(regs->rip);
|
printk_address(regs->rip);
|
||||||
printk(" RSP <%016lx>\n", regs->rsp);
|
printk(" RSP <%016lx>\n", regs->rsp);
|
||||||
|
if (kexec_should_crash(current))
|
||||||
|
crash_kexec(regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void die(const char * str, struct pt_regs * regs, long err)
|
void die(const char * str, struct pt_regs * regs, long err)
|
||||||
@ -455,6 +458,8 @@ void __kprobes die_nmi(char *str, struct pt_regs *regs)
|
|||||||
*/
|
*/
|
||||||
printk(str, safe_smp_processor_id());
|
printk(str, safe_smp_processor_id());
|
||||||
show_registers(regs);
|
show_registers(regs);
|
||||||
|
if (kexec_should_crash(current))
|
||||||
|
crash_kexec(regs);
|
||||||
if (panic_on_timeout || panic_on_oops)
|
if (panic_on_timeout || panic_on_oops)
|
||||||
panic("nmi watchdog");
|
panic("nmi watchdog");
|
||||||
printk("console shuts up ...\n");
|
printk("console shuts up ...\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user