On Tue,  2 Mar 2021 09:52:59 -0800 Jakub Kicinski wrote:
> When receiver does not accept TCP Fast Open it will only ack
> the SYN, and not the data. We detect this and immediately queue
> the data for (re)transmission in tcp_rcv_fastopen_synack().
> 
> In DC networks with very low RTT and without RFS the SYN-ACK
> may arrive before NIC driver reported Tx completion on
> the original SYN. In which case skb_still_in_host_queue()
> returns true and sender will need to wait for the retransmission
> timer to fire milliseconds later.
> 
> Work around this issue by passing negative segment count to
> __tcp_retransmit_skb() as suggested by Eric.
> 
> The condition triggers more often when Tx coalescing is configured
> higher than Rx coalescing on the underlying NIC, but it does happen
> even with relatively moderate and even settings (e.g. 33us).
> 
> Note that DC machines usually run configured to always accept
> TCP FastOpen data so the problem may not be very common.
> 
> Suggested-by: Eric Dumazet <eduma...@google.com>
> Signed-off-by: Neil Spring <ntspr...@fb.com>
> Signed-off-by: Jakub Kicinski <k...@kernel.org>

.. and now I realized net-next is closed. I'll keep an eye on patchwork
and resend as needed, sorry.

Reply via email to