[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