tcp_output starving -- is due to mbuf get delay?

Sean Chittenden sean at chittenden.org
Thu Apr 10 13:12:04 PDT 2003


> I guess I overlooked something after applying the patch (attached):
> 
> Apr 10 12:11:52 ncs /kernel: sbappend: bad tail 0x0xc209a200 instead of 0x0xc243
> 6c00
> Apr 10 12:11:52 ncs /kernel: sbappend: bad tail 0x0xc2436c00 instead of 0x0xc238
> bf00
> Apr 10 12:11:52 ncs /kernel: sbappend: bad tail 0x0xc238bf00 instead of 0x0xc243
> f300
> ...
> 
> A large number of such message was added into /var/log/message. This
> indicates either bad patch code or something I changed in the patch
> to make it work in 4.8 (attached).
> 
> Any thought?

That's likely the sign that the patch isn't appending to the tail of
the list correctly.  Doing a tail append where the tail is known
should be an O(1) operation and should make adding an mbuf to a
cluster faster.  Right now it has to do a linear scan to append data,
iirc, which is likely _a_ cause of some performance degradation.  I'm
not an mbuf expert, but I wonder how free mbuf's are identified.
Regardless, I'll see if I can't figure out where this problem is with
the patch, it should do nothing but make things faster.

-sc

--
Sean Chittenden



More information about the freebsd-performance mailing list