ipv4: Use binary search to choose tcp PMTU probe_size
authorFan Du <fan.du@intel.com>
Fri, 6 Mar 2015 03:18:23 +0000 (11:18 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Mar 2015 19:57:41 +0000 (14:57 -0500)
commit6b58e0a5f32dedb609438bb9c9c82aa6e23381f2
treedcfd707a04fd8295b1384cc18fc60addf22ae23a
parentdcd8fb8533ceb493146ce030d15f7965b82d0c27
ipv4: Use binary search to choose tcp PMTU probe_size

Current probe_size is chosen by doubling mss_cache,
the probing process will end shortly with a sub-optimal
mss size, and the link mtu will not be taken full
advantage of, in return, this will make user to tweak
tcp_base_mss with care.

Use binary search to choose probe_size in a fine
granularity manner, an optimal mss will be found
to boost performance as its maxmium.

In addition, introduce a sysctl_tcp_probe_threshold
to control when probing will stop in respect to
the width of search range.

Test env:
Docker instance with vxlan encapuslation(82599EB)
iperf -c 10.0.0.24  -t 60

before this patch:
1.26 Gbits/sec

After this patch: increase 26%
1.59 Gbits/sec

Signed-off-by: Fan Du <fan.du@intel.com>
Acked-by: John Heffner <johnwheffner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netns/ipv4.h
include/net/tcp.h
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_output.c