From: Eric Dumazet <[email protected]> Date: Wed, 09 Sep 2015 21:55:07 -0700
> From: Eric Dumazet <[email protected]> > > Jana Iyengar found an interesting issue on CUBIC : > > The epoch is only updated/reset initially and when experiencing losses. > The delta "t" of now - epoch_start can be arbitrary large after app idle > as well as the bic_target. Consequentially the slope (inverse of > ca->cnt) would be really large, and eventually ca->cnt would be > lower-bounded in the end to 2 to have delayed-ACK slow-start behavior. > > This particularly shows up when slow_start_after_idle is disabled > as a dangerous cwnd inflation (1.5 x RTT) after few seconds of idle > time. > > Jana initial fix was to reset epoch_start if app limited, > but Neal pointed out it would ask the CUBIC algorithm to recalculate the > curve so that we again start growing steeply upward from where cwnd is > now (as CUBIC does just after a loss). Ideally we'd want the cwnd growth > curve to be the same shape, just shifted later in time by the amount of > the idle period. > > Reported-by: Jana Iyengar <[email protected]> > Signed-off-by: Eric Dumazet <[email protected]> > Signed-off-by: Yuchung Cheng <[email protected]> > Signed-off-by: Neal Cardwell <[email protected]> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
