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