On Tue, Sep 25, 2001 at 04:45:58PM -0000, Wilfred Ling wrote:
> > > I suspect that the bridging code may be spending
> > > too long processing the packets in the queue and that the skbuff are not
> put
> > > back to the transmission queue fast enough. I may be wrong of course.
> >
> > I think you are. In fact, people have had problems before because the
> > bridge code spends less time on processing packets than IP routing does, and
> > thus keeps the hardware busier.
> >
> > Even so, it's just silly that this crashes your machine. I assume you had
> > an oops? Can you identify the section of code where your machine crashed
> > (I assume in the NIC driver) ?
>
> The section is in the NIC driver where it was not able to kmalloc anymore
> memory.
Can you report this to the author of your driver?
> > > I did observed, however, that this do not happen on a 700MHz Athon CPU
> even
> > > though I am using the same NIC cards but I could feel that the Athon
> machine
> > > becomes sluggish when the traffic is high. Could anybody let me know
> whether
> > > are there any kind of rate control in the bridging code?
> >
> > No. You can use output queue control, but that doesn't protect you from
> > receive interrupts livelocking your machine. The only 'fix' is to throttle
> > your network cards during heavy congestion. See
> >
> > ftp://robur.slu.se/pub/Linux/tmp/FF-NordUSENIX.pdf
> >
> >
>
> Even if the card is livelocking the system, it seems to me that the CPU was
> able to service the card's interrupt and pass the skbuff to the upper layer
> which will drop the packet if the queue exceed a number ( indicated
> by /proc/sys/net/core/netdev_max_backlog). Once the packet is dropped, the
> memory is immediately freed. Hence there should be no reason why the driver
> is unable to allocate memory.
*sigh* You were talking about sluggishness and asked for rate control. I
just answered your question.
Lennert
_______________________________________________
Bridge mailing list
[EMAIL PROTECTED]
http://www.math.leidenuniv.nl/mailman/listinfo/bridge