From: Hariprasad Nellitheertha <hari@in.ibm.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>, fastboot <fastboot@lists.osdl.org>
Subject: [PATCH] Sysrq trigger mechanism for kexec based crashdumps
Date: Thu, 31 Mar 2005 16:20:50 +0530 [thread overview]
Message-ID: <424BD60A.1070409@in.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 237 bytes --]
Hi Andrew,
The following patch adds a sysrq-trigger mechanism for kexec
based crashdumps. Alt-Sysrq-c triggers a kexec based
crashdump. Please include this along with the crashdumps
patches in the -mm tree.
Thanks and Regards, Hari
[-- Attachment #2: crashdump-sysrq-trigger.patch --]
[-- Type: text/plain, Size: 2842 bytes --]
Signed-off-by: Hariprasad Nellitheertha <hari@in.ibm.com>
---
linux-2.6.12-rc1-mm3-1M-hari/Documentation/sysrq.txt | 5 +++
linux-2.6.12-rc1-mm3-1M-hari/drivers/char/sysrq.c | 24 +++++++++++++++++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff -puN Documentation/sysrq.txt~crashdump-sysrq-trigger Documentation/sysrq.txt
--- linux-2.6.12-rc1-mm3-1M/Documentation/sysrq.txt~crashdump-sysrq-trigger 2005-03-31 15:56:06.000000000 +0530
+++ linux-2.6.12-rc1-mm3-1M-hari/Documentation/sysrq.txt 2005-03-31 16:01:09.000000000 +0530
@@ -72,6 +72,8 @@ On all - write a character to /proc/sys
'b' - Will immediately reboot the system without syncing or unmounting
your disks.
+'c' - Will perform a kexec reboot in order to take a crashdump.
+
'o' - Will shut your system off (if configured and supported).
's' - Will attempt to sync all mounted filesystems.
@@ -122,6 +124,9 @@ useful when you want to exit a program t
re'B'oot is good when you're unable to shut down. But you should also 'S'ync
and 'U'mount first.
+'C'rashdump can be used to manually trigger a crashdump when the system is hung.
+The kernel needs to have been built with CONFIG_KEXEC enabled.
+
'S'ync is great when your system is locked up, it allows you to sync your
disks and will certainly lessen the chance of data loss and fscking. Note
that the sync hasn't taken place until you see the "OK" and "Done" appear
diff -puN drivers/char/sysrq.c~crashdump-sysrq-trigger drivers/char/sysrq.c
--- linux-2.6.12-rc1-mm3-1M/drivers/char/sysrq.c~crashdump-sysrq-trigger 2005-03-31 15:56:06.000000000 +0530
+++ linux-2.6.12-rc1-mm3-1M-hari/drivers/char/sysrq.c 2005-03-31 16:03:21.000000000 +0530
@@ -34,6 +34,7 @@
#include <linux/swap.h>
#include <linux/spinlock.h>
#include <linux/vt_kern.h>
+#include <linux/kexec.h>
#include <asm/ptrace.h>
#ifdef CONFIG_KGDB_SYSRQ
@@ -112,6 +113,21 @@ static struct sysrq_key_op sysrq_unraw_o
};
#endif /* CONFIG_VT */
+#ifdef CONFIG_KEXEC
+/* crashdump sysrq handler */
+static void sysrq_handle_crashdump(int key, struct pt_regs *pt_regs,
+ struct tty_struct *tty)
+{
+ crash_kexec();
+}
+static struct sysrq_key_op sysrq_crashdump_op = {
+ .handler = sysrq_handle_crashdump,
+ .help_msg = "Crashdump",
+ .action_msg = "Trigger a crashdump",
+ .enable_mask = SYSRQ_ENABLE_DUMP,
+};
+#endif
+
/* reboot sysrq handler */
static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
@@ -285,8 +301,12 @@ static struct sysrq_key_op *sysrq_key_ta
it is handled specially on the sparc
and will never arrive */
/* b */ &sysrq_reboot_op,
-/* c */ NULL,
-/* d */ NULL,
+#ifdef CONFIG_KEXEC
+/* c */ &sysrq_crashdump_op,
+#else
+/* c */ NULL,
+#endif
+/* d */ NULL,
/* e */ &sysrq_term_op,
/* f */ &sysrq_moom_op,
/* g */ GDB_OP,
_
reply other threads:[~2005-03-31 10:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=424BD60A.1070409@in.ibm.com \
--to=hari@in.ibm.com \
--cc=akpm@osdl.org \
--cc=fastboot@lists.osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox