tcp_output starving -- is due to mbuf get delay?
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
> Apr 10 12:11:52 ncs /kernel: sbappend: bad tail 0x0xc2436c00 instead of 0x0xc238
> Apr 10 12:11:52 ncs /kernel: sbappend: bad tail 0x0xc238bf00 instead of 0x0xc243
> 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.
More information about the freebsd-performance