Eric Dumazet
c0f11335f0
tcp: GSO should be TSQ friendly
...
I noticed that TSQ (TCP Small queues) was less effective when TSO is
turned off, and GSO is on. If BQL is not enabled, TSQ has then no
effect.
It turns out the GSO engine frees the original gso_skb at the time the
fragments are generated and queued to the NIC.
We should instead call the tcp_wfree() destructor for the last fragment,
to keep the flow control as intended in TSQ. This effectively limits
the number of queued packets on qdisc + NIC layers.
Signed-off-by: Eric Dumazet <edumazet@google.com >
Cc: Tom Herbert <therbert@google.com >
Cc: Yuchung Cheng <ycheng@google.com >
Cc: Nandita Dukkipati <nanditad@google.com >
Cc: Neal Cardwell <ncardwell@google.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
Change-Id: Idbe0206447bf979e012b6c4d5fe9e4fec10d5eb8
2020-12-10 23:25:05 +01:00
..
2012-01-05 10:51:44 -06:00
2019-08-08 12:09:02 +02:00
2012-02-04 16:06:28 -05:00
2011-03-31 11:26:23 -03:00
2012-03-07 22:52:24 -08:00
2019-08-09 09:14:19 +02:00
2020-09-23 17:28:13 +02:00
2012-03-06 15:16:25 -05:00
2011-05-02 15:26:28 -07:00
2019-08-05 14:20:47 +02:00
2010-08-20 01:42:59 -07:00
2011-07-06 02:52:16 -07:00
2012-04-09 13:57:50 -07:00
2019-08-09 09:14:10 +02:00
2009-08-12 21:54:50 -07:00
2011-04-24 10:54:56 -07:00
2019-08-05 14:20:47 +02:00
2011-01-13 21:48:25 -08:00
2012-02-15 17:48:35 -05:00
2011-11-30 18:51:03 -05:00
2011-07-26 16:49:47 -07:00
2009-03-24 23:32:03 -07:00
2011-08-08 14:26:29 -04:00
2019-08-08 15:08:48 +02:00
2019-08-09 09:14:10 +02:00
2019-08-05 14:20:47 +02:00
2010-10-07 09:43:45 +02:00
2012-03-11 19:11:22 -07:00
2005-08-29 15:32:25 -07:00
2011-10-06 15:49:51 -04:00
2012-03-02 18:16:49 -08:00
2010-11-08 13:50:08 -08:00
2011-03-12 15:08:55 -08:00
2006-03-20 22:42:39 -08:00
2010-06-03 03:21:52 -07:00
2011-03-12 15:08:55 -08:00
2012-02-15 16:37:44 -05:00
2011-12-01 11:41:06 -05:00
2008-01-28 14:55:58 -08:00
2011-11-26 14:29:50 -05:00
2019-08-05 14:20:47 +02:00
2008-01-31 19:27:02 -08:00
2009-03-27 00:16:21 -07:00
2019-08-08 15:08:49 +02:00
2011-11-29 13:17:03 -05:00
2019-08-08 15:08:49 +02:00
2011-05-12 17:46:56 -04:00
2011-03-31 11:26:23 -03:00
2012-01-30 15:22:06 -05:00
2010-08-21 23:05:39 -07:00
2011-11-09 16:04:20 -05:00
2011-11-11 12:32:50 -05:00
2009-11-06 14:32:18 +03:00
2011-11-14 00:19:42 -05:00
2011-08-04 14:32:59 -07:00
2011-05-08 15:28:28 -07:00
2019-08-05 14:20:47 +02:00
2010-07-12 20:21:46 -07:00
2019-08-05 14:20:47 +02:00
2011-10-22 01:25:23 -04:00
2019-08-09 09:14:09 +02:00
2011-07-26 16:49:47 -07:00
2019-08-05 14:20:47 +02:00
2011-12-14 13:34:55 -05:00
2019-08-05 14:20:47 +02:00
2006-12-22 11:12:07 -08:00
2019-08-05 14:20:47 +02:00
2019-08-05 14:20:47 +02:00
2010-10-25 13:09:45 -07:00
2019-08-05 14:20:47 +02:00
2019-08-05 14:20:47 +02:00
2020-05-20 09:44:19 +02:00
2010-02-16 23:05:38 -08:00
2008-06-11 21:00:38 -07:00
2020-12-10 23:11:07 +01:00
2020-05-20 09:44:20 +02:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2011-09-16 19:20:20 -04:00
2011-10-31 19:32:32 -04:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2009-12-26 20:43:57 -08:00
2008-02-29 11:46:17 -08:00
2011-05-13 15:13:24 -04:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-03-31 21:02:47 -07:00
2011-07-26 16:49:47 -07:00
2019-08-05 14:20:47 +02:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2019-08-05 14:20:47 +02:00
2011-12-28 15:06:58 -05:00
2020-05-20 09:44:18 +02:00
2011-05-27 13:41:33 -04:00
2009-01-06 11:38:15 -07:00
2011-04-24 10:54:56 -07:00
2011-08-01 17:58:33 -07:00
2019-08-09 09:09:02 +02:00
2012-02-10 15:08:57 -05:00
2010-03-30 22:02:32 +09:00
2006-09-22 14:55:04 -07:00
2009-08-19 23:08:22 +04:00
2005-08-29 16:01:32 -07:00
2019-08-05 14:20:47 +02:00
2010-12-21 12:43:16 -08:00
2012-08-13 10:37:45 -07:00
2011-12-11 18:25:16 -05:00
2009-03-21 19:06:50 -07:00
2010-09-08 13:42:22 -07:00
2011-04-24 10:54:56 -07:00
2012-04-16 23:53:11 -04:00
2019-08-05 14:20:47 +02:00
2011-09-15 14:49:43 -04:00
2011-03-27 17:59:04 -07:00
2019-08-08 15:08:48 +02:00
2012-02-21 16:56:45 -05:00
2019-08-05 14:20:47 +02:00
2019-08-05 14:20:47 +02:00
2019-08-05 14:20:47 +02:00
2005-07-05 15:12:04 -07:00
2012-01-09 13:08:28 -08:00
2020-12-10 23:24:37 +01:00
2008-07-05 21:25:39 -07:00
2012-02-02 09:20:22 -08:00
2006-01-03 13:10:57 -08:00
2020-12-10 23:25:05 +01:00
2012-03-04 17:54:34 -05:00
2014-01-29 10:24:32 -07:00
2019-08-02 15:14:10 +02:00
2012-03-12 17:05:21 -07:00
2009-10-07 16:39:43 -04:00
2011-06-24 17:50:44 -07:00
2012-03-04 17:54:34 -05:00
2010-11-28 11:12:20 -08:00
2010-04-22 16:12:36 -07:00
2019-08-05 14:20:47 +02:00