From: "D. Bahi" <dbahi@enterasys.com>
To: Gerd Knorr <kraxel@bytesex.org>
Cc: Jeff Dike <jdike@addtoit.com>,
uml devel <user-mode-linux-devel@lists.sourceforge.net>
Subject: Re: [uml-devel] Re: [ann] kraxel's 2.6.8 uml patch kit
Date: Mon, 30 Aug 2004 20:25:33 -0400 [thread overview]
Message-ID: <4133C57D.6060201@enterasys.com> (raw)
In-Reply-To: <20040822111745.GA10736@bytesex>
[-- Attachment #1.1: Type: text/plain, Size: 445 bytes --]
Gerd Knorr wrote:
> On Fri, Aug 20, 2004 at 03:01:40PM -0400, Jeff Dike wrote:
>
>>kraxel@bytesex.org said:
>>
>>>uml-core-on-panic
>>> Make the uml kernel dump core on kernel panics for later analysis.
>>> Default: off, there is a kernel cmd line arg to enable that.
>>
>>I like this, but I think it would be better done in a panic_notifier.
>
>
> I'll have a look.
>
I liked this too. Here's a pass at it if you like (attached).
--
db
[-- Attachment #1.2: core_on_panic.patch --]
[-- Type: text/x-diff, Size: 2464 bytes --]
diff -Naur linux.old/arch/um/kernel/reboot.c linux/arch/um/kernel/reboot.c
--- linux.old/arch/um/kernel/reboot.c 2004-08-30 16:38:37.000000000 -0400
+++ linux/arch/um/kernel/reboot.c 2004-08-30 16:38:51.000000000 -0400
@@ -38,21 +38,19 @@
void uml_cleanup(void)
{
- kill_off_processes();
do_uml_exitcalls();
+ kill_off_processes();
}
void machine_restart(char * __unused)
{
- do_uml_exitcalls();
- kill_off_processes();
+ uml_cleanup();
CHOOSE_MODE(reboot_tt(), reboot_skas());
}
void machine_power_off(void)
{
- do_uml_exitcalls();
- kill_off_processes();
+ uml_cleanup();
CHOOSE_MODE(halt_tt(), halt_skas());
}
@@ -69,5 +67,7 @@
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
+ * indent-tabs-mode: t
+ * tab-width: 8
* End:
*/
diff -Naur linux.old/arch/um/kernel/um_arch.c linux/arch/um/kernel/um_arch.c
--- linux.old/arch/um/kernel/um_arch.c 2004-08-30 16:28:55.000000000 -0400
+++ linux/arch/um/kernel/um_arch.c 2004-08-30 18:20:53.000000000 -0400
@@ -412,9 +412,43 @@
.priority = 0
};
+static int uml_coreonpanic = 0;
+
+static int coreonpanic_setup(char *str) {
+ printf("coreonpanic : Kernel will core on panic.\n");
+ uml_coreonpanic = 1;
+ return(0);
+}
+
+__setup("coreonpanic", coreonpanic_setup);
+__uml_help(coreonpanic_setup,
+"coreonpanic\n"
+" This flag make it so that UML will dump core on a kernel panic or segfault.\n"
+" Shell environment restrictions on cores (limit or ulimit) still apply.\n\n"
+" Beware that your UML will not reboot with this flag.\n"
+);
+
+static int panic_coreonpanic(struct notifier_block *self, unsigned long unused1,
+ void *unused2)
+{
+ if(uml_coreonpanic){
+ uml_cleanup();
+ block_signals();
+ abort();
+ }
+ return(0); /* never get here */
+}
+
+static struct notifier_block panic_coreonpanic_notifier = {
+ .notifier_call = panic_coreonpanic,
+ .next = NULL,
+ .priority = 1
+};
+
void __init setup_arch(char **cmdline_p)
{
notifier_chain_register(&panic_notifier_list, &panic_exit_notifier);
+ notifier_chain_register(&panic_notifier_list, &panic_coreonpanic_notifier);
paging_init();
strcpy(command_line, saved_command_line);
*cmdline_p = command_line;
@@ -436,5 +470,7 @@
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
+ * indent-tabs-mode: t
+ * tab-width: 8
* End:
*/
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 187 bytes --]
next prev parent reply other threads:[~2004-08-31 0:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-20 12:24 [uml-devel] [ann] kraxel's 2.6.8 uml patch kit Gerd Knorr
2004-08-20 13:14 ` Geert Uytterhoeven
2004-08-20 16:52 ` Gerd Knorr
2004-08-20 19:01 ` [uml-devel] " Jeff Dike
2004-08-20 21:05 ` Geert Uytterhoeven
2004-08-21 19:28 ` Gerd Knorr
2004-08-22 13:22 ` Werner Almesberger
2004-08-23 11:06 ` Gerd Knorr
2004-08-22 11:17 ` Gerd Knorr
2004-08-31 0:25 ` D. Bahi [this message]
2004-09-14 12:36 ` Gerd Knorr
2004-09-15 20:59 ` D. Bahi
2004-09-16 10:29 ` [uml-devel] [patch] core-on-panic next take ;) Gerd Knorr
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=4133C57D.6060201@enterasys.com \
--to=dbahi@enterasys.com \
--cc=jdike@addtoit.com \
--cc=kraxel@bytesex.org \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.