lkml.org 
[lkml]   [2013]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 31/86] tcp: frto should not set snd_cwnd to 0
    3.6.11.1 stable review patch.
    If anyone has any objections, please let me know.

    ------------------

    From: Eric Dumazet <edumazet@google.com>

    [ Upstream commit 2e5f421211ff76c17130b4597bc06df4eeead24f ]

    Commit 9dc274151a548 (tcp: fix ABC in tcp_slow_start())
    uncovered a bug in FRTO code :
    tcp_process_frto() is setting snd_cwnd to 0 if the number
    of in flight packets is 0.

    As Neal pointed out, if no packet is in flight we lost our
    chance to disambiguate whether a loss timeout was spurious.

    We should assume it was a proper loss.

    Reported-by: Pasi Kärkkäinen <pasik@iki.fi>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Cc: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    ---
    net/ipv4/tcp_input.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
    index 4b3f448..97cbfa9 100644
    --- a/net/ipv4/tcp_input.c
    +++ b/net/ipv4/tcp_input.c
    @@ -3511,7 +3511,8 @@ static bool tcp_process_frto(struct sock *sk, int flag)
    ((tp->frto_counter >= 2) && (flag & FLAG_RETRANS_DATA_ACKED)))
    tp->undo_marker = 0;

    - if (!before(tp->snd_una, tp->frto_highmark)) {
    + if (!before(tp->snd_una, tp->frto_highmark) ||
    + !tcp_packets_in_flight(tp)) {
    tcp_enter_frto_loss(sk, (tp->frto_counter == 1 ? 2 : 3), flag);
    return true;
    }
    --
    1.7.10.4

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2013-03-27 13:01    [W:4.145 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site