64K NFS I/O generates a 34mbuf list for TCP which breaks TSO
Rick Macklem
rmacklem at uoguelph.ca
Fri Jan 31 03:32:44 UTC 2014
Adrian Chadd wrote:
> On 30 January 2014 07:06, Rick Macklem <rmacklem at uoguelph.ca> wrote:
> > Hi, just adding one more idea on what to do about this
> > to the list:
> > - Add a if_hw_tsomaxseg and modify the loop in tcp_output()
> > so that it uses both if_hw_tsomax and if_hw_tsomaxseg to
> > decide how much to hand to the device driver in each mbuf list.
> > (I haven't looked to see how easy it would be to change this
> > loop.)
>
> I don't think that's a hack. I think adding that and setting
> tsomaxseg
> to say 30 for now would be a good comprimise.
>
Well, my TCP is very rusty and I have no way to test it (I don't
have anything that does TSO), but I've attached a stab at a patch
to do this.
Maybe it can be used as a starting point for this, if others think
it makes sense.
The "#ifdef notyet" in the patch would become something like:
# if __FreeBSD_version >= NNNN
when a change to add if_hw_tsomaxseg is done, was what I was
thinking.
rick
>
>
> -a
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe at freebsd.org"
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tsomaxseg.patch
Type: text/x-patch
Size: 4179 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20140130/1f312acf/attachment.bin>
More information about the freebsd-net
mailing list