Eric Dumazet
1a9914884d
tcp: batch calls to sk_flush_backlog()
...
Starting from commit d41a69f1d390 ("tcp: make tcp_sendmsg() aware of socket backlog")
loopback flows got hurt, because for each skb sent, the socket receives an
immediate ACK and sk_flush_backlog() causes extra work.
Intent was to not let the backlog grow too much, but we went a bit too far.
We can check the backlog every 16 skbs (about 1MB chunks)
to increase TCP over loopback performance by about 15 %
Note that the call to sk_flush_backlog() handles a single ACK,
thanks to coalescing done on backlog, but cleans the 16 skbs
found in rtx rb-tree.
Reported-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-08-09 11:03:27 -07:00
..
2019-05-21 12:33:38 -07:00
2019-07-16 13:17:01 +02:00
2019-07-03 13:51:54 -07:00
2019-06-06 08:34:50 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:45 +02:00
2019-05-30 11:26:32 -07:00
2019-07-08 19:48:57 -07:00
2019-07-05 15:01:15 -07:00
2019-07-01 06:16:40 +02:00
2019-07-17 15:23:39 -07:00
2019-06-04 19:26:49 -07:00
2017-11-02 11:10:55 +01:00
2019-06-07 11:00:14 -07:00
2019-06-17 20:20:36 -07:00
2019-07-02 14:06:47 -07:00
2019-05-21 10:50:45 +02:00
2019-07-05 15:30:36 -07:00
2019-05-30 11:26:32 -07:00
2019-06-07 11:00:14 -07:00
2019-07-08 19:48:57 -07:00
2019-06-22 08:59:24 -04:00
2019-05-30 11:26:32 -07:00
2019-07-24 13:56:37 -07:00
2019-06-07 11:00:14 -07:00
2019-05-21 10:50:45 +02:00
2019-02-08 21:50:15 -08:00
2019-04-08 15:22:40 -07:00
2019-06-19 11:37:47 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-21 18:35:51 +02:00
2019-06-27 21:06:39 -07:00
2019-05-25 11:00:50 -07:00
2019-06-18 20:48:45 -04:00
2019-06-05 17:30:29 +02:00
2019-05-30 11:26:32 -07:00
2019-07-05 15:01:15 -07:00
2019-02-01 15:24:13 -08:00
2019-07-25 17:23:40 -07:00
2019-05-07 17:22:09 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-28 21:37:30 -07:00
2019-05-21 10:50:45 +02:00
2019-01-28 11:32:58 +01:00
2019-05-21 10:50:45 +02:00
2019-06-10 10:44:57 -07:00
2019-05-30 11:26:32 -07:00
2019-06-17 20:20:36 -07:00
2019-05-30 11:26:32 -07:00
2019-07-03 11:26:35 -07:00
2019-06-25 12:46:02 -07:00
2019-07-08 19:48:57 -07:00
2019-05-30 11:26:32 -07:00
2019-07-18 17:08:07 -07:00
2019-01-24 22:27:27 -08:00
2019-05-21 10:50:45 +02:00
2019-05-16 01:36:13 +02:00
2019-05-21 10:50:45 +02:00
2019-07-18 20:33:48 -07:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2018-10-10 22:26:00 -07:00
2019-05-30 11:26:32 -07:00
2019-06-22 16:30:37 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-07-03 16:52:01 +02:00
2019-06-17 20:20:36 -07:00
2019-05-21 10:50:45 +02:00
2019-05-01 11:47:54 -04:00
2019-06-12 13:05:43 -07:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2019-07-30 14:21:32 -07:00
2019-05-21 10:50:45 +02:00
2018-09-21 19:37:59 -07:00
2019-05-21 10:50:45 +02:00
2019-06-15 18:47:31 -07:00
2019-07-22 16:04:17 +02:00
2019-05-21 10:50:45 +02:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-08-09 11:03:27 -07:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2019-01-17 15:01:08 -08:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:45 +02:00
2019-07-18 11:49:46 -07:00
2019-05-30 11:26:32 -07:00
2018-09-04 10:26:30 +02:00
2019-05-30 11:26:32 -07:00
2019-04-30 09:26:13 -04:00
2019-05-30 11:26:32 -07:00
2019-06-06 08:34:50 +02:00
2019-06-06 08:34:50 +02:00