]> www.infradead.org Git - users/hch/misc.git/commitdiff
tcp: move recvmsg_inq to tcp_sock_read_txrx
authorEric Dumazet <edumazet@google.com>
Fri, 19 Sep 2025 20:48:53 +0000 (20:48 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 23 Sep 2025 00:55:25 +0000 (17:55 -0700)
Fill a hole in tcp_sock_read_txrx, instead of possibly wasting
a cache line.

Note that tcp_recvmsg_locked() is also reading tp->repair,
so this removes one cache line miss in tcp recvmsg().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20250919204856.2977245-6-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/networking/net_cachelines/tcp_sock.rst
include/linux/tcp.h

index 429df29fba8bc08bce519870e403815780a2182b..c2138619b995882663a06c2a388d5333d6fe54f0 100644 (file)
@@ -57,7 +57,7 @@ u8:1                          is_sack_reneg                               read_m
 u8:2                          fastopen_client_fail
 u8:4                          nonagle                 read_write                              tcp_skb_entail,tcp_push_pending_frames
 u8:1                          thin_lto
-u8:1                          recvmsg_inq
+u8:1                          recvmsg_inq                                 read_mostly         tcp_recvmsg
 u8:1                          repair                  read_mostly                             tcp_write_xmit
 u8:1                          frto
 u8                            repair_queue
index 1e6c2ded22c985134bd48b7bf5fd464e01e2fd51..c1d7fce251d74be8c5912526637f44c97905e738 100644 (file)
@@ -232,7 +232,8 @@ struct tcp_sock {
                repair      : 1,
                tcp_usec_ts : 1, /* TSval values in usec */
                is_sack_reneg:1,    /* in recovery from loss with SACK reneg? */
-               is_cwnd_limited:1;/* forward progress limited by snd_cwnd? */
+               is_cwnd_limited:1,/* forward progress limited by snd_cwnd? */
+               recvmsg_inq : 1;/* Indicate # of bytes in queue upon recvmsg */
        __cacheline_group_end(tcp_sock_read_txrx);
 
        /* RX read-mostly hotpath cache lines */
@@ -252,7 +253,6 @@ struct tcp_sock {
 #if defined(CONFIG_TLS_DEVICE)
        void (*tcp_clean_acked)(struct sock *sk, u32 acked_seq);
 #endif
-       u8      recvmsg_inq : 1;/* Indicate # of bytes in queue upon recvmsg */
        __cacheline_group_end(tcp_sock_read_rx);
 
        /* TX read-write hotpath cache lines */