This change makes better use of TSO.
When 2 is used, most of the large TCP segments' size are 2*MSS or 3*MSS.
When 3 is used, most of the large TCP segments' size are 4*MSS or 5*MSS.
The math is quite simple, given 1448B segment size:
2 == 4096B == 2 segments
3 == 6144B == 4 segments
Increasing it to a higher value improves single full speed stream's CPU
utilization, but does not have much effect on multiple streams'.
SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_max, CTLFLAG_RW,
&tcp_autorcvbuf_max, 0, "Max size of automatic receive buffer");
-int tcp_sosend_agglim = 2;
+int tcp_sosend_agglim = 3;
SYSCTL_INT(_net_inet_tcp, OID_AUTO, sosend_agglim, CTLFLAG_RW,
&tcp_sosend_agglim, 0, "TCP sosend mbuf aggregation limit");