Add kdump command to KDB.  This command triggers
a dump of the kernel via the kexec/kdump mechanism.

Author: Jim Houston <[EMAIL PROTECTED]>
Signed-off-by: Joe Korty <[EMAIL PROTECTED]>

Index: 2.6.26-rc9/kdb/modules/Makefile
===================================================================
--- 2.6.26-rc9.orig/kdb/modules/Makefile        2008-07-10 12:14:15.000000000 
-0400
+++ 2.6.26-rc9/kdb/modules/Makefile     2008-07-10 13:41:59.000000000 -0400
@@ -6,7 +6,7 @@
 # Copyright (c) 1999-2006 Silicon Graphics, Inc.  All Rights Reserved.
 #
 
-obj-$(CONFIG_KDB_MODULES) += kdbm_pg.o kdbm_task.o kdbm_vm.o kdbm_sched.o
+obj-$(CONFIG_KDB_MODULES) += kdbm_pg.o kdbm_task.o kdbm_vm.o kdbm_sched.o 
kdbm_kdump.o
 obj-m += kdbm_debugtypes.o
 ifdef CONFIG_X86
 obj-$(CONFIG_KDB_MODULES) += kdbm_x86.o
Index: 2.6.26-rc9/kdb/modules/kdbm_kdump.c
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ 2.6.26-rc9/kdb/modules/kdbm_kdump.c 2008-07-10 13:40:59.000000000 -0400
@@ -0,0 +1,43 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (c) 2006 Concurrent Computer Corp
+ */
+
+#include <linux/kdb.h>
+#include <linux/kdbprivate.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/sched.h>
+#include <linux/kexec.h>
+
+
+MODULE_AUTHOR("Concurrent Computer Corp");
+MODULE_DESCRIPTION("interface to request kdump crash dump");
+MODULE_LICENSE("GPL");
+
+static int
+kdbm_kdump(int argc, const char **argv)
+{
+       kdb_printf("Calling crash_kexec\n");
+       crash_kexec(get_irq_regs());
+       kdb_printf("crash_kexec failed\n");
+       return 0;
+}
+
+static int __init kdbm_kdump_init(void)
+{
+       kdb_register("kdump",  kdbm_kdump, "", "request kdump crash dump", 0);
+       return 0;
+}
+
+static void __exit kdbm_kdump_exit(void)
+{
+       kdb_unregister("kdump");
+}
+
+module_init(kdbm_kdump_init)
+module_exit(kdbm_kdump_exit)
Index: 2.6.26-rc9/kernel/kexec.c
===================================================================
--- 2.6.26-rc9.orig/kernel/kexec.c      2008-07-10 12:12:51.000000000 -0400
+++ 2.6.26-rc9/kernel/kexec.c   2008-07-10 13:40:59.000000000 -0400
@@ -19,6 +19,7 @@
 #include <linux/reboot.h>
 #include <linux/ioport.h>
 #include <linux/hardirq.h>
+#include <linux/module.h>
 #include <linux/elf.h>
 #include <linux/elfcore.h>
 #include <linux/utsrelease.h>
@@ -1077,6 +1078,7 @@
                BUG_ON(!locked);
        }
 }
+EXPORT_SYMBOL_GPL(crash_kexec);
 
 static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data,
                            size_t data_len)
---------------------------
Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.

Reply via email to