diff options
author | Eric Dumazet <edumazet@google.com> | 2014-10-28 00:45:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-29 15:05:15 -0400 |
commit | dca145ffaa8d39ea1904491ac81b92b7049372c0 (patch) | |
tree | ebe67ece694b9e54281047a6037b7d5776f9f56b /net/ipv4/tcp_input.c | |
parent | 7aef06db0f91c7b48305d07b62edf43179adb28c (diff) |
tcp: allow for bigger reordering level
While testing upcoming Yaogong patch (converting out of order queue
into an RB tree), I hit the max reordering level of linux TCP stack.
Reordering level was limited to 127 for no good reason, and some
network setups [1] can easily reach this limit and get limited
throughput.
Allow a new max limit of 300, and add a sysctl to allow admins to even
allow bigger (or lower) values if needed.
[1] Aggregation of links, per packet load balancing, fabrics not doing
deep packet inspections, alternative TCP congestion modules...
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Yaogong Wang <wygivan@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index a12b455928e5..9a18cdd633f3 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -81,6 +81,7 @@ int sysctl_tcp_window_scaling __read_mostly = 1; | |||
81 | int sysctl_tcp_sack __read_mostly = 1; | 81 | int sysctl_tcp_sack __read_mostly = 1; |
82 | int sysctl_tcp_fack __read_mostly = 1; | 82 | int sysctl_tcp_fack __read_mostly = 1; |
83 | int sysctl_tcp_reordering __read_mostly = TCP_FASTRETRANS_THRESH; | 83 | int sysctl_tcp_reordering __read_mostly = TCP_FASTRETRANS_THRESH; |
84 | int sysctl_tcp_max_reordering __read_mostly = 300; | ||
84 | EXPORT_SYMBOL(sysctl_tcp_reordering); | 85 | EXPORT_SYMBOL(sysctl_tcp_reordering); |
85 | int sysctl_tcp_dsack __read_mostly = 1; | 86 | int sysctl_tcp_dsack __read_mostly = 1; |
86 | int sysctl_tcp_app_win __read_mostly = 31; | 87 | int sysctl_tcp_app_win __read_mostly = 31; |
@@ -833,7 +834,7 @@ static void tcp_update_reordering(struct sock *sk, const int metric, | |||
833 | if (metric > tp->reordering) { | 834 | if (metric > tp->reordering) { |
834 | int mib_idx; | 835 | int mib_idx; |
835 | 836 | ||
836 | tp->reordering = min(TCP_MAX_REORDERING, metric); | 837 | tp->reordering = min(sysctl_tcp_max_reordering, metric); |
837 | 838 | ||
838 | /* This exciting event is worth to be remembered. 8) */ | 839 | /* This exciting event is worth to be remembered. 8) */ |
839 | if (ts) | 840 | if (ts) |