[PATCH v28 01/20] net: Introduce direct data placement tcp offload

Aurelien Aptel aaptel at nvidia.com
Thu Jun 5 04:54:54 PDT 2025


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?

Thanks



More information about the Linux-nvme mailing list