Re: [patch 1/3] vdso: print fatal signals

From: Zachary Amsden
Date: Tue May 23 2006 - 18:10:19 EST

Ingo Molnar wrote:
Index: linux-vdso-rand.q/kernel/signal.c
--- linux-vdso-rand.q.orig/kernel/signal.c
+++ linux-vdso-rand.q/kernel/signal.c
@@ -763,6 +763,37 @@ out_set:
#define LEGACY_QUEUE(sigptr, sig) \
(((sig) < SIGRTMIN) && sigismember(&(sigptr)->signal, (sig)))
+int print_fatal_signals = 0;
+static void print_fatal_signal(struct pt_regs *regs, int signr)
+ printk("%s/%d: potentially unexpected fatal signal %d.\n",
+ current->comm, current->pid, signr);
+#ifdef __i386__
+ printk("code at %08lx: ", regs->eip);
+ {
+ int i;
+ for (i = 0; i < 16; i++) {
+ unsigned char insn;
+ __get_user(insn, (unsigned char *)(regs->eip + i));
+ printk("%02x ", insn);
+ }
+ }

This looks ok for debugging boot problems. Perhaps you could print the registers too? The instruction dump won't help much for indirect access.

The get_user of eip+i is ok, but doesn't account for segment offsets. Not that I think it needs to here. But it is one of a many growing number of places that now try to inspect or modify a potentially segmented area of memory (page fault handler must inspect for prefetch instructions, kprobes reads and patches code, FPU emulation). Perhaps a common interface would be a nice thing at some point in time.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at