Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Aug 2015 09:00:52 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        Daniel Braniss <danny@cs.huji.ac.il>, FreeBSD Net <freebsd-net@freebsd.org>, Christopher Forgeron <csforgeron@gmail.com>, FreeBSD stable <freebsd-stable@freebsd.org>, Slawa Olhovchenkov <slw@zxy.spb.ru>
Subject:   Re: ix(intel) vs mlxen(mellanox) 10Gb performance
Message-ID:  <55D429A4.3010407@selasky.org>
In-Reply-To: <1325951625.25292515.1439934848268.JavaMail.zimbra@uoguelph.ca>
References:  <1D52028A-B39F-4F9B-BD38-CB1D73BF5D56@cs.huji.ac.il> <17871443-E105-4434-80B1-6939306A865F@cs.huji.ac.il> <473274181.23263108.1439814072514.JavaMail.zimbra@uoguelph.ca> <7F892C70-9C04-4468-9514-EDBFE75CF2C6@cs.huji.ac.il> <805850043.24018217.1439848150695.JavaMail.zimbra@uoguelph.ca> <9D8B0503-E8FA-43CA-88F0-01F184F84D9B@cs.huji.ac.il> <1721122651.24481798.1439902381663.JavaMail.zimbra@uoguelph.ca> <55D333D6.5040102@selasky.org> <1325951625.25292515.1439934848268.JavaMail.zimbra@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On 08/18/15 23:54, Rick Macklem wrote:
> Ouch! Yes, I now see that the code that counts the # of mbufs is before the
> code that adds the tcp/ip header mbuf.
>
> In my opinion, this should be fixed by setting if_hw_tsomaxsegcount to whatever
> the driver provides - 1. It is not the driver's responsibility to know if a tcp/ip
> header mbuf will be added and is a lot less confusing that expecting the driver
> author to know to subtract one. (I had mistakenly thought that tcp_output() had
> added the tc/ip header mbuf before the loop that counts mbufs in the list. Btw,
> this tcp/ip header mbuf also has leading space for the MAC layer header.)
>

Hi Rick,

Your question is good. With the Mellanox hardware we have separate 
so-called inline data space for the TCP/IP headers, so if the TCP stack 
subtracts something, then we would need to add something to the limit, 
because then the scatter gather list is only used for the data part.

Maybe it can be controlled by some kind of flag, if all the three TSO 
limits should include the TCP/IP/ethernet headers too. I'm pretty sure 
we want both versions.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55D429A4.3010407>