Neal Cardwell
cdbeb633ca
tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
...
In some situations tcp_send_loss_probe() can realize that it's unable
to send a loss probe (TLP), and falls back to calling tcp_rearm_rto()
to schedule an RTO timer. In such cases, sometimes tcp_rearm_rto()
realizes that the RTO was eligible to fire immediately or at some
point in the past (delta_us <= 0). Previously in such cases
tcp_rearm_rto() was scheduling such "overdue" RTOs to happen at now +
icsk_rto, which caused needless delays of hundreds of milliseconds
(and non-linear behavior that made reproducible testing
difficult). This commit changes the logic to schedule "overdue" RTOs
ASAP, rather than at now + icsk_rto.
Fixes: 6ba8a3b19e ("tcp: Tail loss probe (TLP)")
Suggested-by: Yuchung Cheng <ycheng@google.com >
Signed-off-by: Neal Cardwell <ncardwell@google.com >
Signed-off-by: Yuchung Cheng <ycheng@google.com >
Signed-off-by: Eric Dumazet <edumazet@google.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2017-08-18 16:07:43 -07:00
..
2017-07-17 17:02:44 +02:00
2017-08-09 22:46:44 -07:00
2017-06-23 14:17:31 -04:00
2017-06-16 11:48:39 -04:00
2017-08-01 15:31:23 -07:00
2015-07-29 22:44:04 -07:00
2017-07-01 07:39:08 -07:00
2017-04-19 07:48:57 +02:00
2017-07-01 07:39:08 -07:00
2017-07-20 15:24:45 -07:00
2017-05-30 11:55:32 -04:00
2017-03-10 09:45:09 -08:00
2017-03-16 10:18:34 -07:00
2017-08-15 17:07:52 -07:00
2017-07-04 01:29:04 -07:00
2017-08-01 16:09:14 -07:00
2016-06-30 05:03:36 -04:00
2016-10-20 14:32:22 -04:00
2017-06-15 11:59:32 -04:00
2017-08-16 11:08:55 -07:00
2017-07-01 07:39:08 -07:00
2017-01-13 22:37:16 -05:00
2017-07-01 07:39:09 -07:00
2017-07-03 03:29:14 -07:00
2017-07-01 07:39:08 -07:00
2017-07-01 07:39:07 -07:00
2016-11-03 16:10:26 -04:00
2017-07-01 07:39:09 -07:00
2017-06-26 23:13:22 -04:00
2017-03-24 13:17:07 -07:00
2016-12-24 11:46:01 -08:00
2017-08-10 09:52:12 -07:00
2017-06-30 02:04:09 -04:00
2017-06-25 11:42:01 -04:00
2017-06-16 12:01:29 -04:00
2017-06-26 23:13:22 -04:00
2015-04-03 12:11:15 -04:00
2017-06-16 11:48:35 -04:00
2017-06-26 23:13:22 -04:00
2017-07-12 08:18:46 -07:00
2017-02-16 21:25:49 -05:00
2017-06-15 12:12:40 -04:00
2017-02-28 12:49:36 +01:00
2017-07-01 07:39:08 -07:00
2017-06-08 11:26:19 -04:00
2017-03-24 13:17:07 -07:00
2016-11-03 15:25:26 -04:00
2017-07-01 07:39:08 -07:00
2017-08-18 16:05:46 -07:00
2017-07-18 11:22:51 -07:00
2017-06-15 12:12:40 -04:00
2017-07-15 14:43:29 -07:00
2017-05-17 16:06:01 -04:00
2017-03-02 08:42:27 +01:00
2017-07-01 16:15:14 -07:00
2017-05-17 16:06:01 -04:00
2016-12-06 11:34:24 -05:00
2016-08-23 23:11:36 -07:00
2017-07-01 16:15:14 -07:00
2016-11-21 13:20:17 -05:00
2017-05-17 16:06:01 -04:00
2016-11-21 13:20:17 -05:00
2016-11-21 13:20:17 -05:00
2017-08-18 16:07:43 -07:00
2017-08-14 22:31:27 -07:00
2017-05-17 16:06:01 -04:00
2017-05-17 16:06:01 -04:00
2017-07-01 16:15:13 -07:00
2017-05-21 13:42:36 -04:00
2017-07-01 07:39:08 -07:00
2017-08-08 20:39:52 -07:00
2017-02-21 13:26:03 -05:00
2017-06-15 12:12:40 -04:00
2017-05-17 16:06:01 -04:00
2016-11-21 13:20:17 -05:00
2017-08-03 09:34:51 -07:00
2017-08-14 22:17:05 -07:00
2016-11-21 13:20:17 -05:00
2016-05-11 14:43:19 -04:00
2016-11-21 13:20:17 -05:00
2017-05-17 16:06:01 -04:00
2016-11-21 13:20:17 -05:00
2017-07-01 16:15:14 -07:00
2016-07-11 13:27:06 -07:00
2017-07-01 07:39:08 -07:00
2017-05-18 10:23:33 -04:00
2017-08-08 21:39:01 -07:00
2016-06-17 20:23:32 -07:00
2017-08-18 15:12:54 -07:00
2016-11-24 15:32:14 -05:00
2017-02-15 11:04:11 +01:00
2017-06-16 11:48:39 -04:00
2017-04-14 10:07:39 +02:00
2017-04-14 10:07:39 +02:00
2017-04-14 10:06:10 +02:00
2017-02-09 10:22:19 +01:00
2017-02-09 10:22:17 +01:00
2017-01-10 10:57:12 +01:00
2013-05-31 17:19:05 -07:00