ix(intel) vs mlxen(mellanox) 10Gb performance

Hans Petter Selasky hps at selasky.org
Tue Aug 18 13:21:23 UTC 2015


On 08/18/15 14:53, Rick Macklem wrote:
> If this is just a test machine, maybe you could test with these lines (at about #880)
> in sys/netinet/tcp_output.c commented out? (It looks to me like this will disable TSO
> for almost all the NFS writes.)
> - around line #880 in sys/netinet/tcp_output.c:
> 			/*
> 			 * In case there are too many small fragments
> 			 * don't use TSO:
> 			 */
> 			if (len <= max_len) {
> 				len = max_len;
> 				sendalot = 1;
> 				tso = 0;
> 			}
>
> This was added along with the other stuff that did the if_hw_tsomaxsegcount, etc and I
> never noticed it until now (not my patch).

FYI:

These lines are needed by other hardware, like the mlxen driver. If you 
remove them mlxen will start doing m_defrag(). I believe if you set the 
correct parameters in the "struct ifnet" for the TSO size/count limits 
this problem will go away. If you print the "len" and "max_len" and also 
the cases where TSO limits are reached, you'll see what parameter is 
triggering it and needs to be increased.

--HPS


More information about the freebsd-net mailing list