[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADVnQymGOHwMYAxWVvzrNx1+Fk4Au7VndxtDY5vLB-Qo2L1qZw@mail.gmail.com>
Date: Mon, 14 Sep 2020 09:43:49 -0400
From: Neal Cardwell <ncardwell@...gle.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: "David S . Miller" <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Eric Dumazet <eric.dumazet@...il.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>
Subject: Re: [PATCH net-next] tcp: remove SOCK_QUEUE_SHRUNK
On Mon, Sep 14, 2020 at 6:20 AM Eric Dumazet <edumazet@...gle.com> wrote:
>
> SOCK_QUEUE_SHRUNK is currently used by TCP as a temporary state
> that remembers if some room has been made in the rtx queue
> by an incoming ACK packet.
>
> This is later used from tcp_check_space() before
> considering to send EPOLLOUT.
>
> Problem is: If we receive SACK packets, and no packet
> is removed from RTX queue, we can send fresh packets, thus
> moving them from write queue to rtx queue and eventually
> empty the write queue.
>
> This stall can happen if TCP_NOTSENT_LOWAT is used.
>
> With this fix, we no longer risk stalling sends while holes
> are repaired, and we can fully use socket sndbuf.
>
> This also removes a cache line dirtying for typical RPC
> workloads.
>
> Fixes: c9bee3b7fdec ("tcp: TCP_NOTSENT_LOWAT socket option")
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Cc: Soheil Hassas Yeganeh <soheil@...gle.com>
> ---
Nice. It's beautiful when a fix is also a simplification...
Acked-by: Neal Cardwell <ncardwell@...gle.com>
neal
Powered by blists - more mailing lists