Re: signals logged / [RFC] log out-of-virtual-memory events

From: Jan Engelhardt
Date: Mon May 21 2007 - 08:39:25 EST



On May 21 2007 13:04, Folkert van Heusden wrote:
>
>What about the following enhancement: I check with sig_fatal if it would
>kill the process and only then emit a message. So when an application
>takes care itself of handling it nothing is printed.

>+ /* emit some logging for unhandled signals
>+ */
>+ if (sig_fatal(t, sig))

Not unhandled_signal()?

>+ {

if (sig_fatal(t, sig)) {

>+ printk(KERN_WARNING "Sig %d send to %d owned by %d.%d (%s)\n",

s/send/sent/;

>+ sig, t -> pid, t -> uid, t -> gid, t -> comm);

t->pid, t->uid, t->gid, t->comm);

>+ }
>+
> /*
> * fast-pathed signals for kernel-internal things like SIGSTOP
> * or SIGKILL.
>
>of course, this can also be limited to only the interesting signals:
>
>Signed-off by: Folkert van Heusden <folkert@xxxxxxxxxxxxxx>
>
>--- kernel/signal.c.org 2007-05-20 22:47:13.000000000 +0200
>+++ kernel/signal.c 2007-05-21 12:59:52.000000000 +0200
>@@ -739,6 +739,28 @@
> struct sigqueue * q = NULL;
> int ret = 0;
>
>+ /* emit some logging for nasty signals
>+ * especially SIGSEGV and friends aught to be looked at when happening
>+ */
>+ switch(sig) {
>+ case SIGQUIT:
>+ case SIGILL:
>+ case SIGTRAP:
>+ case SIGABRT:
>+ case SIGBUS:
>+ case SIGFPE:
>+ case SIGSEGV:
>+ case SIGXCPU:
>+ case SIGXFSZ:
>+ case SIGSYS:
>+ case SIGSTKFLT:
>+ if (sig_fatal(t, sig))
>+ {
>+ printk(KERN_WARNING "Sig %d send to %d owned by %d.%d (%s)\n",
>+ sig, t -> pid, t -> uid, t -> gid, t -> comm);
>+ }
>+ }
>+
> /*
> * fast-pathed signals for kernel-internal things like SIGSTOP
> * or SIGKILL.
>



Jan
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/