public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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);

  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