aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_ipv4.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2018-11-11 10:34:28 -0500
committerDavid S. Miller <davem@davemloft.net>2018-11-11 16:57:03 -0500
commitc73e5807e4f6fc6d373a5db55b45f639f8bb6328 (patch)
tree09c332f796e245e7ec15cc31905e61f793da451b /net/ipv4/tcp_ipv4.c
parent83afb36a7097bdf6776e261fa3a2bf2dc5a4a8c2 (diff)
tcp: tsq: no longer use limit_output_bytes for paced flows
FQ pacing guarantees that paced packets queued by one flow do not add head-of-line blocking for other flows. After TCP GSO conversion, increasing limit_output_bytes to 1 MB is safe, since this maps to 16 skbs at most in qdisc or device queues. (or slightly more if some drivers lower {gso_max_segs|size}) We still can queue at most 1 ms worth of traffic (this can be scaled by wifi drivers if they need to) Tested: # ethtool -c eth0 | egrep "tx-usecs:|tx-frames:" # 40 Gbit mlx4 NIC tx-usecs: 16 tx-frames: 16 # tc qdisc replace dev eth0 root fq # for f in {1..10};do netperf -P0 -H lpaa24,6 -o THROUGHPUT;done Before patch: 27711 26118 27107 27377 27712 27388 27340 27117 27278 27509 After patch: 37434 36949 36658 36998 37711 37291 37605 36659 36544 37349 Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r--net/ipv4/tcp_ipv4.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 5424a4077c27..0952d4b772e7 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -2574,8 +2574,8 @@ static int __net_init tcp_sk_init(struct net *net)
2574 * which are too large can cause TCP streams to be bursty. 2574 * which are too large can cause TCP streams to be bursty.
2575 */ 2575 */
2576 net->ipv4.sysctl_tcp_tso_win_divisor = 3; 2576 net->ipv4.sysctl_tcp_tso_win_divisor = 3;
2577 /* Default TSQ limit of four TSO segments */ 2577 /* Default TSQ limit of 16 TSO segments */
2578 net->ipv4.sysctl_tcp_limit_output_bytes = 262144; 2578 net->ipv4.sysctl_tcp_limit_output_bytes = 16 * 65536;
2579 /* rfc5961 challenge ack rate limiting */ 2579 /* rfc5961 challenge ack rate limiting */
2580 net->ipv4.sysctl_tcp_challenge_ack_limit = 1000; 2580 net->ipv4.sysctl_tcp_challenge_ack_limit = 1000;
2581 net->ipv4.sysctl_tcp_min_tso_segs = 2; 2581 net->ipv4.sysctl_tcp_min_tso_segs = 2;