bge dropping packets issue

Jung-uk Kim jkim at FreeBSD.org
Wed Apr 16 21:24:30 UTC 2008


On Wednesday 16 April 2008 05:02 pm, Alexander Sack wrote:
> On Wed, Apr 16, 2008 at 4:54 PM, Jung-uk Kim <jkim at freebsd.org> 
wrote:
> > On Wednesday 16 April 2008 04:28 pm, Alexander Sack wrote:
> >  > On Wed, Apr 16, 2008 at 2:56 PM, Jung-uk Kim
> >  > <jkim at freebsd.org>
> >
> >  wrote:
> >  > > [CC trimmed]
> >  > >
> >  > >  On Wednesday 16 April 2008 02:20 pm, Alexander Sack wrote:
> >  > >  > Dieter: Thanks, at 20Mbps!  That's pretty aweful.
> >  > >  >
> >  > >  > JK:  Thanks again.  Wow, I searched the list and didn't
> >  > >  > see much discussion with respect to bge and packet loss! 
> >  > >  > I will try the rest of that patch including pushing the
> >  > >  > TCP receive buffer up (though I don't think that's going
> >  > >  > to help in this case).  The above is based on just
> >  > >  > looking at code....
> >  > >  >
> >  > >  > I guess some follow-up questions would be:
> >  > >  >
> >  > >  > 1)  Why isn't BGE_SSLOTS tunable (to a point)?  Why can't
> >  > >  > that be added the driver?  I noticed that CURRENT has
> >  > >  > added a lot more SYSCTL information.  Moreover it seems
> >  > >  > the Linux driver can set it up to 1024.
> >  > >
> >  > >  IIRC, Linux tg3 uses one ring for both standard and jumbo.
> >  >
> >  > I'm talking about the number of slots within the ring not the
> >  > number of RX queues.
> >  >
> >  > I believe the bnx4 driver (thought the tg stuff was
> >  > deprecated??) uses 4 rings (one for each port perhaps) and
> >  > reads hardware register at ISR time to flip between them.
> >
> >  I guess you are reading wrong source, i.e., bnx4(?) is NetXtreme
> > II driver, which totally different family.  We support them with
> > bce(4). tg3 is still official Linux driver.
>
> You are correct, I got the names confused (this problem really
> stinks)!
>
> However, my point still stands:
>
> #define TG3_RX_RCB_RING_SIZE(tp) ((tp->tg3_flags2 &
> TG3_FLG2_5705_PLUS) ?  512 : 1024)
>
> Even the Linux driver uses higher number of RX descriptors than
> FreeBSD's static 256.  I think minimally making this tunable is a
> fair approach.

AFAIK, BCM5705+ does not support jumbo frames and it has one bigger 
receive ring.

> If not, no biggie, but I think its worth it.

I think 512 is okay for modern hardware but I have no hard feeling 
about adding a tunable.

Jung-uk Kim


More information about the freebsd-net mailing list