• Eric Dumazet's avatar
    tcp: consider using standard rtx logic in tcp_rcv_fastopen_synack() · a7abf3cd
    Eric Dumazet authored
    Jakub reported Data included in a Fastopen SYN that had to be
    retransmit would have to wait for an RTO if TX completions are slow,
    even with prior fix.
    
    This is because tcp_rcv_fastopen_synack() does not use standard
    rtx logic, meaning TSQ handler exits early in tcp_tsq_write()
    because tp->lost_out == tp->retrans_out
    
    Lets make tcp_rcv_fastopen_synack() use standard rtx logic,
    by using tcp_mark_skb_lost() on the skb thats needs to be
    sent again.
    
    Not this raised a warning in tcp_fastretrans_alert() during my tests
    since we consider the data not being aknowledged
    by the receiver does not mean packet was lost on the network.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a7abf3cd
tcp_input.c 197 KB