Messages in this thread Patch in this message | | | Date | Fri, 23 Apr 1999 15:12:03 -0500 | From | "M.H.VanLeeuwen" <> | Subject | Re: SMP lockup & 3c509 on 2.2.x [aka. the Deadly 'ping -f'] |
| |
Andrea Arcangeli wrote: > > 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
Andrea
your patch didn't work, only got one [<xxx>] print, so i did this
-- --- irq.c.orig Fri Apr 23 13:27:08 1999 +++ irq.c Fri Apr 23 14:09:31 1999 @@ -477,7 +477,7 @@ 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 (i = 80; i ; i--) { unsigned long x = *++stack; if (x > (unsigned long) &get_options && x < (unsigned long) &vsprintf) { printk("<[%08lx]> ", x); @@ -485,7 +485,7 @@ } }
-#define MAXCOUNT 100000000 +#define MAXCOUNT 1000000
static inline void wait_on_bh(void) { changed MAXCOUNT so I didn't have to wait so long! ;-) for the trace dump
recompiled with 3c509 a built-in kernel instead of module, that took care of the "autofs" symbol problem U saw earlier, just a screw up on my part.
Trace: c0109ca1 <__global_cli+bd/14c> Trace: c0109bde <synchronize_irq+e/14> Trace: c0109ed1 <disable_irq+61/68> Trace: c01b4455 <el3_start_xmit+139/240> Trace: c015eac5 <qdisc_restart+39/6c> Trace: c015a61f <dev_queue_xmit+3b/c8> Trace: c0164869 <ip_output+95/bc> Trace: c0165396 <ip_build_xmit+2d2/30c> Trace: c01610df <ip_route_output+5b/dc> Trace: c0170075 <raw_sendmsg+229/260> Trace: c016fd80 <raw_getfrag+0/24> Trace: c0175298 <inet_sendmsg+0/90> Trace: c017531b <inet_sendmsg+83/90> Trace: c01562e8 <sock_sendmsg+88/ac>
Martin
- 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/
| |