Re: SMP lockup & 3c509 on 2.2.x [aka. the Deadly 'ping -f']

Andrea Arcangeli (andrea@e-mind.com)
Fri, 23 Apr 1999 16:22:44 +0200 (CEST)


On Mon, 19 Apr 1999, M.H.VanLeeuwen wrote:

>wait_on_irq, CPU 0
> irq 2[0,2]
> bh 2[0,0]
><[c0109ca1]> <[c0109bde]>....
>
>c0109ca1 <__global_cli+bd/14c>
>c0109bde <synchronize_irq+e/14>
>c0109ed1 <disable_irq+61/68>
>c015ed4d <qdisc_restart+39/6c>
>c015aa43 <dev_queue_xmit+3b/c8>
>c0164719 <ip_output+85/b8>
>c016521a <ip_build_xmit+29a/2cc>

I want a larger view on the trace, please apply this patch, and hope to
get a longer trace at the next lockup ;).

Index: irq.c
===================================================================
RCS file: /var/cvs/linux/arch/i386/kernel/irq.c,v
retrieving revision 1.1.2.14
diff -u -r1.1.2.14 irq.c
--- irq.c 1999/04/17 14:58:41 1.1.2.14
+++ linux/arch/i386/kernel/irq.c 1999/04/23 14:21:01
@@ -478,11 +478,13 @@
printk("bh: %d [%d %d]\n",
atomic_read(&global_bh_count), local_bh_count[0], local_bh_count[1]);
stack = (unsigned long *) &stack;
- for (i = 40; i ; i--) {
+ for (;;) {
unsigned long x = *++stack;
if (x > (unsigned long) &get_options && x < (unsigned long) &vsprintf) {
printk("<[%08lx]> ", x);
}
+ if (!(x & 0x2000)) /* break if we finished the stack */
+ break;
}
}

Andrea Arcangeli

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