[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOFY-A3zsv2Ui9dqHVOoY3JNgedfs1H0qt0q6BipbFpYrFBfXg@mail.gmail.com>
Date: Wed, 2 Dec 2020 16:24:54 -0800
From: Arjun Roy <arjunroy@...gle.com>
To: stephen@...workplumber.org
Cc: Arjun Roy <arjunroy.kdev@...il.com>,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>
Subject: Re: [net-next v2 1/8] net-zerocopy: Copy straggler unaligned data for
TCP Rx. zerocopy.
On Wed, Dec 2, 2020 at 4:15 PM Stephen Hemminger
<stephen@...workplumber.org> wrote:
>
> On Wed, 2 Dec 2020 14:09:38 -0800
> Arjun Roy <arjunroy.kdev@...il.com> wrote:
>
> > diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
> > index cfcb10b75483..62db78b9c1a0 100644
> > --- a/include/uapi/linux/tcp.h
> > +++ b/include/uapi/linux/tcp.h
> > @@ -349,5 +349,7 @@ struct tcp_zerocopy_receive {
> > __u32 recv_skip_hint; /* out: amount of bytes to skip */
> > __u32 inq; /* out: amount of bytes in read queue */
> > __s32 err; /* out: socket error */
> > + __u64 copybuf_address; /* in: copybuf address (small reads) */
> > + __s32 copybuf_len; /* in/out: copybuf bytes avail/used or error */
> > };
> > #endif /* _UAPI_LINUX_TCP_H */
>
> You can't safely grow the size of a userspace API without handling the
> case of older applications. Logic in setsockopt() would have to handle
> both old and new sizes of the structure.
Acknowledged, but tcp zerocopy receive is a special case: it does not
exist in setsockopt().
Regarding old applications in the getsockopt() case: the current
layout should handle older and newer callers as is (it devolves to
only use the features the application provides buffer space for).
Please note also v3 for this patchset; it's the same as this but I
forgot the signed-off-by statements here in v2.
Thanks,
-Arjun
Powered by blists - more mailing lists