All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.