From: Neal Cardwell <ncardw...@google.com> Date: Wed, 16 Aug 2017 17:53:36 -0400
> 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. > > Suggested-by: Yuchung Cheng <ych...@google.com> > Signed-off-by: Neal Cardwell <ncardw...@google.com> > Signed-off-by: Yuchung Cheng <ych...@google.com> > Signed-off-by: Eric Dumazet <eduma...@google.com> Applied with Fixes: tag added and queued up for -stable, thanks Neal.