Benjamin Herrenschmidt wrote: > On Fri, 2008-08-08 at 10:58 +0200, Segher Boessenkool wrote: > > > I don't know yet for sure what happens, but a quick look at the commit > > > seems to show that the driver synchronously spin-waits for up to 2.5ms > > > > That's what the comment says, but the code says 2.5 _seconds_: > > > > + /* Wait for up to 2.5 milliseconds */ > > + for (i = 0; i < 250000; i++) { > > + if (!(tr32(GRC_RX_CPU_EVENT) & GRC_RX_CPU_DRIVER_EVENT)) > > + break; > > + udelay(10); > > + } > > > > (not that milliseconds wouldn't be bad already...) > > Right, indeed. I think we have a good candidate for the problem :-)
I put a printk in tg3_wait_for_event_ack and I can confirm that it's timing out frequently (every few seconds) on my system. Changing the number of loop iterations to 250 alleviates the problem. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev