lkml.org 
[lkml]   [2004]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRE: kernel BUG at kernel/timer.c:370!
Date
From
I just observed this failure on two separate systems this morning.  I
added the patch in the hopes that it will provide some useful
information.

Dave Craig

QUALCOMM Incorporated

-----Original Message-----
From: linux-kernel-owner@vger.kernel.org
[mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Andrew Morton
Sent: Saturday, February 14, 2004 12:22 AM
To: Rafael D'Halleweyn (List)
Cc: linux-kernel@vger.kernel.org
Subject: Re: kernel BUG at kernel/timer.c:370!

"Rafael D'Halleweyn (List)" <list@noduck.net> wrote:
>
> I sometimes get the following BUG (transcribed from a digital camera
> snapshot, so it might contain errors). I did not copy the stack
trace,
> let me know if you want it.
>
> kernel BUG at kernel/timer.c:370!
> invalid operand: 0000 [#1]
> CPU: 0
> EIP: 0060:[<c01284f8>] Not tainted
> EFLAGS: 00010003
> EIP is at cascade+0x50/0x70
> eax: d0a77724 ebx: d0a77724 ecx: c04aaa28 edx: 0000001c
> esi: c04aab08 edi: c04aa220 ebp: 0000001c esp: c0457e9e
> ds: 007b es: 007b ss: 0068
> Process swapper (pid: 0, threadinfo=c0456000 task=c03d2de0)
> Stack: ...
> Call Trace:
> [<c01289e4>] update_process_times+0x44/0x50
> [<c0128b3f>] run_timer_softirq+0x12f/0x1c0
> [<c0124695>] do_softirq+0x95/0xa0
> [<c010d2fb>] do_IRQ+0xfb/0x130
> [<c010b5e8>] common_interrupt+0x18/0x20

This could be a hardware problem. Or it could be a bug basically
anywhere
in the kernel.

Are you using CONFIG_DEBUG_SLAB?

Could you please apply the below patch, wait for the problem to reoccur,
then let us know?

diff -puN kernel/timer.c~a kernel/timer.c
--- 25/kernel/timer.c~a 2004-02-14 00:14:46.000000000 -0800
+++ 25-akpm/kernel/timer.c 2004-02-14 00:20:09.000000000 -0800
@@ -31,6 +31,7 @@
#include <linux/time.h>
#include <linux/jiffies.h>
#include <linux/cpu.h>
+#include <linux/kallsyms.h>

#include <asm/uaccess.h>
#include <asm/div64.h>
@@ -367,7 +368,15 @@ static int cascade(tvec_base_t *base, tv
struct timer_list *tmp;

tmp = list_entry(curr, struct timer_list, entry);
- BUG_ON(tmp->base != base);
+ if (tmp->base != base) {
+ printk("%s: %p != %p\n",
+ __FUNCTION__, tmp->base, base);
+ printk("handler=%p", tmp->function);
+ print_symbol(" (%s)", (unsigned
long)tmp->function);
+ printk("\n");
+ dump_stack();
+ tmp->base = base;
+ }
curr = curr->next;
internal_add_timer(base, tmp);
}
_


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.026 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site