[PATCH v28 01/20] net: Introduce direct data placement tcp offload
Eric Dumazet
edumazet at google.com
Thu Jun 5 05:44:40 PDT 2025
On Thu, Jun 5, 2025 at 4:55 AM Aurelien Aptel <aaptel at nvidia.com> wrote:
>
> Eric Dumazet <edumazet at google.com> writes:
> > Adding one bit in all skbs for such a narrow case is not very convincing to me.
> >
> > I would prefer a disable/enable bit in the receiving socket, or a
> > global static key.
>
> We can move the bit to the socket, within the sock_read_rx cacheline group:
>
>
> --- a/include/net/sock.h
> +++ b/include/net/sock.h
> @@ -420,7 +420,7 @@ struct sock {
> #endif
> u8 sk_userlocks;
> int sk_rcvbuf;
> -
> + bool sk_no_condense;
> struct sk_filter __rcu *sk_filter;
> union {
> struct socket_wq __rcu *sk_wq;
>
>
> And then check for it in skb_condense().
> We are still evaluating it but it looks fine for us.
> Would that work for you?
This is a slow path check, you can use one bit after sk_no_check_rx,
because we have a hole there.
More information about the Linux-nvme
mailing list