Re: [PATCH] tcp: fix race condition when creating child sockets from syncookies

From: Ricardo Dias
Date: Fri Oct 23 2020 - 12:48:35 EST


On Fri, Oct 23, 2020 at 06:36:29PM +0200, Eric Dumazet wrote:
> On Fri, Oct 23, 2020 at 6:06 PM Ricardo Dias <rdias@xxxxxxxxxx> wrote:
>
> > And what about the loopback interface? Why couldn't the loopback
> > interface also use a single RX queue?
> >
>
> Loopback is using a per-cpu queue, with no crossing, for efficiency.
>
> That means : whenever a packet is sent on lo interface from CPU X, it
> is put on CPU X backlog queue.
>
> If the connect() and sendmsg() are run from different cpus, then the
> ACK (from last packet of 3WH) and the data packet might land on
> different queues.

In that case, I can change the patch to only iterate the ehash bucket
only when the listening socket is using the loopback interface, correct?