Skip to content

Commit

Permalink
tcp_bbr: remove sk_pacing_rate=0 transient during init
Browse files Browse the repository at this point in the history
Fix a corner case noticed by Eric Dumazet, where BBR's setting
sk->sk_pacing_rate to 0 during initialization could theoretically
cause packets in the sending host to hang if there were packets "in
flight" in the pacing infrastructure at the time the BBR congestion
control state is initialized. This could occur if the pacing
infrastructure happened to race with bbr_init() in a way such that the
pacer read the 0 rather than the immediately following non-zero pacing
rate.

Fixes: 0f8782e ("tcp_bbr: add BBR congestion control")
Reported-by: Eric Dumazet <[email protected]>
Signed-off-by: Neal Cardwell <[email protected]>
Signed-off-by: Yuchung Cheng <[email protected]>
Signed-off-by: Soheil Hassas Yeganeh <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
nealcardwell authored and davem330 committed Jul 15, 2017
1 parent 79135b8 commit 1d3648e
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion net/ipv4/tcp_bbr.c
Original file line number Diff line number Diff line change
Expand Up @@ -837,7 +837,6 @@ static void bbr_init(struct sock *sk)

minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */

sk->sk_pacing_rate = 0; /* force an update of sk_pacing_rate */
bbr_init_pacing_rate_from_rtt(sk);

bbr->restore_cwnd = 0;
Expand Down

0 comments on commit 1d3648e

Please sign in to comment.