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-stable
mailing list