From: "Randy.Dunlap" <rddunlap@osdl.org>
To: Szakacsits Szabolcs <szaka@sienet.hu>
Cc: torvalds@transmeta.com, linux-kernel@vger.kernel.org
Subject: [PATCH] OOPS counters
Date: Wed, 12 Mar 2003 15:32:27 -0800 [thread overview]
Message-ID: <20030312153227.1f027efe.rddunlap@osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.30.0303120622290.15538-100000@divine.city.tvnet.hu>
On Wed, 12 Mar 2003 07:07:26 +0100 (MET) Szakacsits Szabolcs <szaka@sienet.hu> wrote:
| And in general, an oops counter would be also useful, not spending too
| much time decoding potentialy bogus oopses.
Hi,
This patch (to 2.5.64) adds an Oops counter to all die() and __die()
functions that I could find and prints the counter on each Oops: message
that looks like so (the "[#n]" part):
Oops: 0002 [#2]
Comments?
--
~Randy
patch_name: oops_counter.patch
patch_version: 2003-03-12.14:50:05
author: Randy.Dunlap <rddunlap@osdl.org>
description: Add an Oops counter to oops messages.
product: Linux
product_versions: 2.5.64
changelog: Add an oops counter message in all die() or __die() functions.
diffstat: =
arch/arm/kernel/traps.c | 3 ++-
arch/i386/kernel/traps.c | 3 ++-
arch/ia64/kernel/traps.c | 4 +++-
arch/mips/kernel/traps.c | 3 ++-
arch/mips64/kernel/traps.c | 3 ++-
arch/ppc/kernel/traps.c | 3 ++-
arch/ppc64/kernel/traps.c | 3 ++-
arch/s390/kernel/traps.c | 3 ++-
arch/s390x/kernel/traps.c | 3 ++-
arch/sh/kernel/traps.c | 3 ++-
arch/x86_64/kernel/traps.c | 3 ++-
11 files changed, 23 insertions(+), 11 deletions(-)
diff -Naur ./arch/ppc/kernel/traps.c%OOPSC ./arch/ppc/kernel/traps.c
--- ./arch/ppc/kernel/traps.c%OOPSC Tue Mar 4 19:29:03 2003
+++ ./arch/ppc/kernel/traps.c Wed Mar 12 14:48:47 2003
@@ -86,13 +86,14 @@
void die(const char * str, struct pt_regs * fp, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
#ifdef CONFIG_PMAC_BACKLIGHT
set_backlight_enable(1);
set_backlight_level(BACKLIGHT_MAX);
#endif
- printk("Oops: %s, sig: %ld\n", str, err);
+ printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
show_regs(fp);
spin_unlock_irq(&die_lock);
/* do_exit() should take care of panic'ing from an interrupt
diff -Naur ./arch/i386/kernel/traps.c%OOPSC ./arch/i386/kernel/traps.c
--- ./arch/i386/kernel/traps.c%OOPSC Tue Mar 4 19:29:01 2003
+++ ./arch/i386/kernel/traps.c Wed Mar 12 13:10:33 2003
@@ -247,11 +247,12 @@
void die(const char * str, struct pt_regs * regs, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
handle_BUG(regs);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
show_registers(regs);
bust_spinlocks(0);
spin_unlock_irq(&die_lock);
diff -Naur ./arch/mips/kernel/traps.c%OOPSC ./arch/mips/kernel/traps.c
--- ./arch/mips/kernel/traps.c%OOPSC Tue Mar 4 19:29:17 2003
+++ ./arch/mips/kernel/traps.c Wed Mar 12 14:38:40 2003
@@ -191,12 +191,13 @@
extern void __die(const char * str, struct pt_regs * regs, const char *where,
unsigned long line)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
printk("%s", str);
if (where)
printk(" in %s, line %ld", where, line);
- printk(":\n");
+ printk("[#%d]:\n", ++die_counter);
show_regs(regs);
printk("Process %s (pid: %d, stackpage=%08lx)\n",
current->comm, current->pid, (unsigned long) current);
diff -Naur ./arch/ppc64/kernel/traps.c%OOPSC ./arch/ppc64/kernel/traps.c
--- ./arch/ppc64/kernel/traps.c%OOPSC Tue Mar 4 19:29:19 2003
+++ ./arch/ppc64/kernel/traps.c Wed Mar 12 14:47:46 2003
@@ -62,10 +62,11 @@
void die(const char *str, struct pt_regs *regs, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
- printk("Oops: %s, sig: %ld\n", str, err);
+ printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
show_regs(regs);
bust_spinlocks(0);
spin_unlock_irq(&die_lock);
diff -Naur ./arch/mips64/kernel/traps.c%OOPSC ./arch/mips64/kernel/traps.c
--- ./arch/mips64/kernel/traps.c%OOPSC Tue Mar 4 19:29:30 2003
+++ ./arch/mips64/kernel/traps.c Wed Mar 12 14:47:11 2003
@@ -161,12 +161,13 @@
void die(const char * str, struct pt_regs * regs, unsigned long err)
{
+ static int die_counter = 0;
if (user_mode(regs)) /* Just return if in user mode. */
return;
console_verbose();
spin_lock_irq(&die_lock);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
show_regs(regs);
printk("Process %s (pid: %d, stackpage=%08lx)\n",
current->comm, current->pid, (unsigned long) current);
diff -Naur ./arch/ia64/kernel/traps.c%OOPSC ./arch/ia64/kernel/traps.c
--- ./arch/ia64/kernel/traps.c%OOPSC Tue Mar 4 19:29:52 2003
+++ ./arch/ia64/kernel/traps.c Wed Mar 12 14:46:28 2003
@@ -101,6 +101,7 @@
.lock_owner = -1,
.lock_owner_depth = 0
};
+ static int die_counter = 0;
if (die.lock_owner != smp_processor_id()) {
console_verbose();
@@ -111,7 +112,8 @@
}
if (++die.lock_owner_depth < 3) {
- printk("%s[%d]: %s %ld\n", current->comm, current->pid, str, err);
+ printk("%s[%d]: %s %ld [%d]\n",
+ current->comm, current->pid, str, err, ++die_counter);
show_regs(regs);
} else
printk(KERN_ERR "Recursive die() failure, output suppressed\n");
diff -Naur ./arch/arm/kernel/traps.c%OOPSC ./arch/arm/kernel/traps.c
--- ./arch/arm/kernel/traps.c%OOPSC Tue Mar 4 19:29:17 2003
+++ ./arch/arm/kernel/traps.c Wed Mar 12 14:45:13 2003
@@ -208,12 +208,13 @@
NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
{
struct task_struct *tsk = current;
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
- printk("Internal error: %s: %x\n", str, err);
+ printk("Internal error: %s: %x [#%d]\n", str, err, ++die_counter);
print_modules();
printk("CPU: %d\n", smp_processor_id());
show_regs(regs);
diff -Naur ./arch/x86_64/kernel/traps.c%OOPSC ./arch/x86_64/kernel/traps.c
--- ./arch/x86_64/kernel/traps.c%OOPSC Tue Mar 4 19:28:53 2003
+++ ./arch/x86_64/kernel/traps.c Wed Mar 12 14:44:07 2003
@@ -325,11 +325,12 @@
{
int cpu;
struct die_args args = { regs, str, err };
+ static int die_counter = 0;
console_verbose();
notifier_call_chain(&die_chain, DIE_DIE, &args);
bust_spinlocks(1);
handle_BUG(regs);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
cpu = safe_smp_processor_id();
/* racy, but better than risking deadlock. */
local_irq_disable();
diff -Naur ./arch/s390x/kernel/traps.c%OOPSC ./arch/s390x/kernel/traps.c
--- ./arch/s390x/kernel/traps.c%OOPSC Tue Mar 4 19:29:32 2003
+++ ./arch/s390x/kernel/traps.c Wed Mar 12 14:43:29 2003
@@ -228,10 +228,11 @@
void die(const char * str, struct pt_regs * regs, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
show_regs(regs);
bust_spinlocks(0);
spin_unlock_irq(&die_lock);
diff -Naur ./arch/sh/kernel/traps.c%OOPSC ./arch/sh/kernel/traps.c
--- ./arch/sh/kernel/traps.c%OOPSC Tue Mar 4 19:28:56 2003
+++ ./arch/sh/kernel/traps.c Wed Mar 12 14:43:03 2003
@@ -58,9 +58,10 @@
void die(const char * str, struct pt_regs * regs, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
show_regs(regs);
spin_unlock_irq(&die_lock);
do_exit(SIGSEGV);
diff -Naur ./arch/s390/kernel/traps.c%OOPSC ./arch/s390/kernel/traps.c
--- ./arch/s390/kernel/traps.c%OOPSC Tue Mar 4 19:29:15 2003
+++ ./arch/s390/kernel/traps.c Wed Mar 12 14:42:21 2003
@@ -226,10 +226,11 @@
void die(const char * str, struct pt_regs * regs, long err)
{
+ static int die_counter = 0;
console_verbose();
spin_lock_irq(&die_lock);
bust_spinlocks(1);
- printk("%s: %04lx\n", str, err & 0xffff);
+ printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
show_regs(regs);
bust_spinlocks(0);
spin_unlock_irq(&die_lock);
next prev parent reply other threads:[~2003-03-12 23:24 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-02 1:38 ntfs OOPS (2.5.63) Randy.Dunlap
2003-03-04 14:51 ` [Linux-NTFS-Dev] " Szakacsits Szabolcs
2003-03-05 19:09 ` Anton Altaparmakov
2003-03-06 6:19 ` Randy.Dunlap
2003-03-06 6:28 ` Szakacsits Szabolcs
2003-03-06 6:42 ` Randy.Dunlap
2003-03-06 12:32 ` Anton Altaparmakov
2003-03-06 14:34 ` Szakacsits Szabolcs
2003-03-06 14:55 ` Anton Altaparmakov
2003-03-06 19:39 ` Randy.Dunlap
2003-03-06 19:41 ` Szakacsits Szabolcs
2003-03-06 20:15 ` Szakacsits Szabolcs
2003-03-06 20:36 ` Randy.Dunlap
2003-03-06 21:46 ` Oops counter (was Re: ntfs OOPS (2.5.63)) Szakacsits Szabolcs
2003-03-07 7:50 ` [Linux-NTFS-Dev] ntfs OOPS (2.5.63) Randy.Dunlap
2003-03-07 7:52 ` Szakacsits Szabolcs
2003-03-07 17:17 ` Randy.Dunlap
2003-03-07 17:56 ` Szakacsits Szabolcs
2003-03-07 18:08 ` Randy.Dunlap
2003-03-08 13:24 ` Szakacsits Szabolcs
2003-03-08 15:47 ` Szakacsits Szabolcs
2003-03-10 4:16 ` Randy.Dunlap
2003-03-10 7:22 ` 2.5.63 accesses below %esp (was: Re: ntfs OOPS (2.5.63)) Szakacsits Szabolcs
2003-03-11 17:01 ` Alan Cox
2003-03-11 16:29 ` Szakacsits Szabolcs
2003-03-12 1:09 ` Alan Cox
2003-03-13 18:02 ` Zach Brown
2003-03-12 0:39 ` Linus Torvalds
2003-03-12 6:07 ` Szakacsits Szabolcs
2003-03-12 7:52 ` Richard Henderson
2003-03-12 8:02 ` Szakacsits Szabolcs
2003-03-12 8:17 ` Richard Henderson
2003-03-12 8:45 ` Szakacsits Szabolcs
2003-03-12 9:17 ` Szakacsits Szabolcs
2003-03-12 15:28 ` Szakacsits Szabolcs
2003-03-12 15:38 ` Linus Torvalds
2003-03-12 23:14 ` Bill Davidsen
2003-03-12 10:19 ` Arjan van de Ven
2003-03-12 15:20 ` Linus Torvalds
2003-03-12 15:24 ` Arjan van de Ven
2003-03-12 15:35 ` Szakacsits Szabolcs
2003-03-12 15:43 ` Arjan van de Ven
2003-03-12 15:47 ` Linus Torvalds
2003-03-12 16:38 ` Randy.Dunlap
2003-03-12 16:50 ` Randy.Dunlap
2003-03-12 18:25 ` Szakacsits Szabolcs
2003-03-12 18:33 ` Linus Torvalds
2003-03-12 21:54 ` Szakacsits Szabolcs
2003-03-12 22:18 ` Linus Torvalds
2003-03-12 22:28 ` Szakacsits Szabolcs
2003-03-13 1:07 ` Linus Torvalds
2003-03-14 8:04 ` Szakacsits Szabolcs
2003-03-14 10:00 ` Helge Hafting
2003-03-14 11:02 ` Szakacsits Szabolcs
2003-03-13 21:07 ` Horst von Brand
2003-03-13 23:24 ` Linus Torvalds
2003-03-14 1:08 ` Jonathan Lundell
2003-03-14 4:29 ` Randy.Dunlap
2003-03-14 6:26 ` Jonathan Lundell
2003-03-15 18:24 ` Horst von Brand
2003-03-15 19:47 ` Randy.Dunlap
2003-03-12 21:13 ` Horst von Brand
2003-03-12 22:03 ` Szakacsits Szabolcs
2003-03-13 21:04 ` Horst von Brand
2003-03-14 7:14 ` Denis Vlasenko
2003-03-14 12:16 ` Backward disassembling (was: Re: 2.5.63 accesses below %esp) Szakacsits Szabolcs
2003-03-14 16:53 ` Jonathan Lundell
2003-03-15 18:34 ` 2.5.63 accesses below %esp (was: Re: ntfs OOPS (2.5.63)) Horst von Brand
2003-03-17 6:56 ` Denis Vlasenko
2003-03-17 21:43 ` Horst von Brand
2003-03-18 3:28 ` Keith Owens
2003-03-18 7:13 ` Hugh Dickins
2003-03-20 10:48 ` Keith Owens
2003-03-20 11:04 ` Hugh Dickins
2003-03-18 19:44 ` Szakacsits Szabolcs
2003-03-18 6:05 ` Denis Vlasenko
2003-03-18 6:35 ` John Alvord
2003-03-14 18:01 ` Olaf Titz
2003-03-14 18:56 ` Richard B. Johnson
2003-03-12 23:32 ` Randy.Dunlap [this message]
2003-03-06 12:27 ` [Linux-NTFS-Dev] ntfs OOPS (2.5.63) Anton Altaparmakov
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=20030312153227.1f027efe.rddunlap@osdl.org \
--to=rddunlap@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=szaka@sienet.hu \
--cc=torvalds@transmeta.com \
/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