TSO

Jack Vogel jfvogel at gmail.com
Fri Feb 28 23:15:41 UTC 2014


Cool Rick,

Would be easy enough to add the correct setting into the Intel drivers,
thanks for
doing this!

Jack



On Fri, Feb 28, 2014 at 3:01 PM, Rick Macklem <rmacklem at uoguelph.ca> wrote:

> John-Mark Gurney wrote:
> > Julian Elischer wrote this message on Fri, Feb 28, 2014 at 13:24
> > +0800:
> > > On 2/27/14, 5:24 AM, John-Mark Gurney wrote:
> > > >Jack Vogel wrote this message on Wed, Feb 26, 2014 at 10:27 -0800:
> > > >>Drivers have to work with whatever the requirements/limitations
> > > >>of the
> > > >>hardware,
> > > >>if you have a 5 lb sack you shouldn't be surprised if some drops
> > > >>when you
> > > >>shove
> > > >>6 lbs at it :)
> > > >But right now, when that happens, the nic just drops it instead of
> > > >telling the kernel to stop giving 6 lbs sacks.. :)  It's only
> > > >after a
> > > >large amount of work by various people did we even find out that
> > > >this
> > > >is what was happening...
> > > so why not look at what would happen if it were people doing this..
> > >
> > > person1 would hand person2 a 4 pound sack.
> > > all ok..
> > > person 1 then hands person2 a 6 pound sack and person 2 replies
> > > "Ouch", that's too much!..
> > > person 1 now knows not to do that.. until he forgets...
> > > part of the trick is knowing while assembling the packet, what
> > > interface is going to be used..
> > > which from memory is not 100% guaranteed because routes can
> > > change...
> >
> > Umm... TSO depends upon knowlege that the interface supports it...
> > if it didn't we couldn't do it..  The default is that the person can
> > only ever accept a 1lb bag, but the TSO flag says, they can take
> > more..
> >
> > If they forget, then they'd go back to the default of 1lb sacks at
> > a time...
> >
> > Plus, we already have something similar for the max size of the TSO,
> > so the code is mostly there already, see t_tsomax...
> >
> I've attached the untested (and I have nothing that does TSO, so I can't
> really take this patch any further) patch that adds tsomaxseg to be used
> along with t_tsomax by tcp_output() when deciding how big to make the TSO
> segment.
> The one thing John-Mark Gurney pointed out was that the default value for
> tsomaxseg needs to be large, so that it doesn't impact drivers that can
> handle more than 32 transmit segments.
>
> At this point few drivers set if_hw_tsomax and just use the default of
> 65535. Drivers would need to be fixed to set if_hw_tsomaxseg for this
> patch to be useful. (Assuming it is tested/debugged so it does what I
> meant it to;-)
>
> rick
>
> > --
> >   John-Mark Gurney                            Voice: +1 415 225 5579
> >
> >      "All that I will do, has been done, All that I have, has not."
> > _______________________________________________
> > 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"
> >
>


More information about the freebsd-net mailing list