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 /Documentation/networking | |
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 'Documentation/networking')
-rw-r--r-- | Documentation/networking/bonding.txt | 7 | ||||
-rw-r--r-- | Documentation/networking/ip-sysctl.txt | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index eeb5b2e97bed..83bf4986baea 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -2230,11 +2230,8 @@ balance-rr: This mode is the only mode that will permit a single | |||
2230 | 2230 | ||
2231 | It is possible to adjust TCP/IP's congestion limits by | 2231 | It is possible to adjust TCP/IP's congestion limits by |
2232 | altering the net.ipv4.tcp_reordering sysctl parameter. The | 2232 | altering the net.ipv4.tcp_reordering sysctl parameter. The |
2233 | usual default value is 3, and the maximum useful value is 127. | 2233 | usual default value is 3. But keep in mind TCP stack is able |
2234 | For a four interface balance-rr bond, expect that a single | 2234 | to automatically increase this when it detects reorders. |
2235 | TCP/IP stream will utilize no more than approximately 2.3 | ||
2236 | interface's worth of throughput, even after adjusting | ||
2237 | tcp_reordering. | ||
2238 | 2235 | ||
2239 | Note that the fraction of packets that will be delivered out of | 2236 | Note that the fraction of packets that will be delivered out of |
2240 | order is highly variable, and is unlikely to be zero. The level | 2237 | order is highly variable, and is unlikely to be zero. The level |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 0307e2875f21..9028b879a97b 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -376,9 +376,17 @@ tcp_orphan_retries - INTEGER | |||
376 | may consume significant resources. Cf. tcp_max_orphans. | 376 | may consume significant resources. Cf. tcp_max_orphans. |
377 | 377 | ||
378 | tcp_reordering - INTEGER | 378 | tcp_reordering - INTEGER |
379 | Maximal reordering of packets in a TCP stream. | 379 | Initial reordering level of packets in a TCP stream. |
380 | TCP stack can then dynamically adjust flow reordering level | ||
381 | between this initial value and tcp_max_reordering | ||
380 | Default: 3 | 382 | Default: 3 |
381 | 383 | ||
384 | tcp_max_reordering - INTEGER | ||
385 | Maximal reordering level of packets in a TCP stream. | ||
386 | 300 is a fairly conservative value, but you might increase it | ||
387 | if paths are using per packet load balancing (like bonding rr mode) | ||
388 | Default: 300 | ||
389 | |||
382 | tcp_retrans_collapse - BOOLEAN | 390 | tcp_retrans_collapse - BOOLEAN |
383 | Bug-to-bug compatibility with some broken printers. | 391 | Bug-to-bug compatibility with some broken printers. |
384 | On retransmit try to send bigger packets to work around bugs in | 392 | On retransmit try to send bigger packets to work around bugs in |