[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-8.0] nbd/server: Request TCP_NODELAY
From: |
Eric Blake |
Subject: |
Re: [PATCH for-8.0] nbd/server: Request TCP_NODELAY |
Date: |
Mon, 27 Mar 2023 19:32:08 -0500 |
User-agent: |
NeoMutt/20230322 |
On Tue, Mar 28, 2023 at 12:42:59AM +0200, Florian Westphal wrote:
> Eric Blake <eblake@redhat.com> wrote:
> > Nagle's algorithm adds latency in order to reduce network packet
> > overhead on small packets. But when we are already using corking to
> > merge smaller packets into transactional requests, the extra delay
> > from TCP defaults just gets in the way.
> >
> > For reference, qemu as an NBD client already requests TCP_NODELAY (see
> > nbd_connect() in nbd/client-connection.c); as does libnbd as a client
> > [1], and nbdkit as a server [2].
> >
> > [1]
> > https://gitlab.com/nbdkit/libnbd/-/blob/a48a1142/generator/states-connect.c#L39
> > [2] https://gitlab.com/nbdkit/nbdkit/-/blob/45b72f5b/server/sockets.c#L430
> >
> > CC: Florian Westphal <fw@strlen.de>
> > Signed-off-by: Eric Blake <eblake@redhat.com>
> > ---
> > nbd/server.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/nbd/server.c b/nbd/server.c
> > index a4750e41880..976223860bf 100644
> > --- a/nbd/server.c
> > +++ b/nbd/server.c
> > @@ -2755,6 +2755,7 @@ void nbd_client_new(QIOChannelSocket *sioc,
> > }
> > client->tlsauthz = g_strdup(tlsauthz);
> > client->sioc = sioc;
> > + qio_channel_set_delay(QIO_CHANNEL(cioc), false);
>
> ../nbd/server.c: In function 'nbd_client_new':
> ../nbd/server.c:2763:39: error: 'cioc' undeclared (first use in this
> function); did you mean 'sioc'?
>
> Other than that this looks good to me.
Arrgh. Bitten by hitting send before saving the edits in my buffer.
Yes, the obvious fix is needed and intended.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org