Sometimes, bug reports come in where we've had an oops, and the
only record we have is what the reporter saw on screen shortly
before the system locked up completely. Unfortunatly, syslog
only prints lines beginning with KERN_EMERG to the console, so
some lines get lost.
An example of this can be seen at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=203723
Some of this information isn't vital to diagnosis, but some parts
are useful, such as the tainted flag.
Signed-off-by: Dave Jones <[email protected]>
--- local-git/arch/i386/kernel/traps.c~ 2006-09-10 23:01:18.000000000 -0400
+++ local-git/arch/i386/kernel/traps.c 2006-09-10 23:03:33.000000000 -0400
@@ -291,10 +291,11 @@ void show_registers(struct pt_regs *regs
ss = regs->xss & 0xffff;
}
print_modules();
- printk(KERN_EMERG "CPU: %d\nEIP: %04x:[<%08lx>] %s VLI\n"
- "EFLAGS: %08lx (%s %.*s) \n",
- smp_processor_id(), 0xffff & regs->xcs, regs->eip,
- print_tainted(), regs->eflags, system_utsname.release,
+ printk(KERN_EMERG "CPU: %d\n", smp_processor_id());
+ printk(KERN_EMERG "EIP: %04x:[<%08lx>] %s VLI\n",
+ 0xffff & regs->xcs, regs->eip, print_tainted());
+ printk(KERN_EMERG "EFLAGS: %08lx (%s %.*s)\n",
+ regs->eflags, system_utsname.release,
(int)strcspn(system_utsname.version, " "),
system_utsname.version);
print_symbol(KERN_EMERG "EIP is at %s\n", regs->eip);
--
http://www.codemonkey.org.uk
> print_modules();
> - printk(KERN_EMERG "CPU: %d\nEIP: %04x:[<%08lx>] %s VLI\n"
> - "EFLAGS: %08lx (%s %.*s) \n",
> - smp_processor_id(), 0xffff & regs->xcs, regs->eip,
> - print_tainted(), regs->eflags, system_utsname.release,
> + printk(KERN_EMERG "CPU: %d\n", smp_processor_id());
> + printk(KERN_EMERG "EIP: %04x:[<%08lx>] %s VLI\n",
> + 0xffff & regs->xcs, regs->eip, print_tainted());
> + printk(KERN_EMERG "EFLAGS: %08lx (%s %.*s)\n",
Still only using a single printk would be slightly safer
-Andi
On Mon, Sep 11, 2006 at 07:44:15AM +0200, Andi Kleen wrote:
>
> > print_modules();
> > - printk(KERN_EMERG "CPU: %d\nEIP: %04x:[<%08lx>] %s VLI\n"
> > - "EFLAGS: %08lx (%s %.*s) \n",
> > - smp_processor_id(), 0xffff & regs->xcs, regs->eip,
> > - print_tainted(), regs->eflags, system_utsname.release,
> > + printk(KERN_EMERG "CPU: %d\n", smp_processor_id());
> > + printk(KERN_EMERG "EIP: %04x:[<%08lx>] %s VLI\n",
> > + 0xffff & regs->xcs, regs->eip, print_tainted());
> > + printk(KERN_EMERG "EFLAGS: %08lx (%s %.*s)\n",
>
> Still only using a single printk would be slightly safer
Signed-off-by: Dave Jones <[email protected]>
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index 7e9edaf..b30fc9e 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -291,8 +291,9 @@ void show_registers(struct pt_regs *regs
ss = regs->xss & 0xffff;
}
print_modules();
- printk(KERN_EMERG "CPU: %d\nEIP: %04x:[<%08lx>] %s VLI\n"
- "EFLAGS: %08lx (%s %.*s) \n",
+ printk(KERN_EMERG "CPU: %d\n"
+ KERN_EMERG "EIP: %04x:[<%08lx>] %s VLI\n"
+ KERN_EMERG "EFLAGS: %08lx (%s %.*s)\n",
smp_processor_id(), 0xffff & regs->xcs, regs->eip,
print_tainted(), regs->eflags, system_utsname.release,
(int)strcspn(system_utsname.version, " "),
--
http://www.codemonkey.org.uk
On Monday 11 September 2006 08:07, Dave Jones wrote:
> On Mon, Sep 11, 2006 at 07:44:15AM +0200, Andi Kleen wrote:
> > > print_modules();
> > > - printk(KERN_EMERG "CPU: %d\nEIP: %04x:[<%08lx>] %s VLI\n"
> > > - "EFLAGS: %08lx (%s %.*s) \n",
> > > - smp_processor_id(), 0xffff & regs->xcs, regs->eip,
> > > - print_tainted(), regs->eflags, system_utsname.release,
> > > + printk(KERN_EMERG "CPU: %d\n", smp_processor_id());
> > > + printk(KERN_EMERG "EIP: %04x:[<%08lx>] %s VLI\n",
> > > + 0xffff & regs->xcs, regs->eip, print_tainted());
> > > + printk(KERN_EMERG "EFLAGS: %08lx (%s %.*s)\n",
> >
> > Still only using a single printk would be slightly safer
>
> Signed-off-by: Dave Jones <[email protected]>
Added thanks., Please include the full description on reposted patches
in the future too.
-Andi