summaryrefslogtreecommitdiffstats
path: root/kernel/latencytop.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2015-09-17 08:38:00 -0700
committerSasha Levin <sasha.levin@oracle.com>2016-04-23 16:45:18 -0400
commite912c4abafa7d306539040b1a231d277fd750be8 (patch)
treec784da67270666d3a2f8760775a02182c657d34c /kernel/latencytop.c
parent5d6226fe6abbaf576328d6cbc8c5473f32428d68 (diff)
downloadlinux-stable-e912c4abafa7d306539040b1a231d277fd750be8.tar.gz
linux-stable-e912c4abafa7d306539040b1a231d277fd750be8.tar.bz2
linux-stable-e912c4abafa7d306539040b1a231d277fd750be8.zip
tcp_cubic: do not set epoch_start in the future
[ Upstream commit c2e7204d180f8efc80f27959ca9cf16fa17f67db ] Tracking idle time in bictcp_cwnd_event() is imprecise, as epoch_start is normally set at ACK processing time, not at send time. Doing a proper fix would need to add an additional state variable, and does not seem worth the trouble, given CUBIC bug has been there forever before Jana noticed it. Let's simply not set epoch_start in the future, otherwise bictcp_update() could overflow and CUBIC would again grow cwnd too fast. This was detected thanks to a packetdrill test Neal wrote that was flaky before applying this fix. Fixes: 30927520dbae ("tcp_cubic: better follow cubic curve after idle period") Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: Yuchung Cheng <ycheng@google.com> Cc: Jana Iyengar <jri@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'kernel/latencytop.c')
0 files changed, 0 insertions, 0 deletions