From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, edumazet@google.com,
pabeni@redhat.com, Willem de Bruijn <willemb@google.com>
Subject: [PATCH net-next 1/7] tcp: only initialize sockcm tsflags field
Date: Thu, 6 Feb 2025 14:34:48 -0500 [thread overview]
Message-ID: <20250206193521.2285488-2-willemdebruijn.kernel@gmail.com> (raw)
In-Reply-To: <20250206193521.2285488-1-willemdebruijn.kernel@gmail.com>
From: Willem de Bruijn <willemb@google.com>
TCP only reads the tsflags field. Don't bother initializing others.
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
Another option is to entirely avoid sockcm_cookie in the tcp hot path.
Limit its use to the sock_cmsg_send branch:
@@ -1123,13 +1123,17 @@ int tcp_sendmsg_locked(struct sock *sk, struct
msghdr *msg, size_t size)
/* 'common' sending to sendq */
}
- sockcm_init(&sockc, sk);
+ tsflags = READ_ONCE(sk->sk_tsflags);
if (msg->msg_controllen) {
+ struct sockcm_cookie sockc = { .tsflags = tsflags };
+
err = sock_cmsg_send(sk, msg, &sockc);
if (unlikely(err)) {
err = -EINVAL;
goto out_err;
}
+
+ tsflags = sockc.tsflags;
This involves a bit more rework, to have sock_tx_timestamp take a u32
tsflags directly.
---
net/ipv4/tcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 0d704bda6c41..1f94b4e6c7ec 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1123,7 +1123,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
/* 'common' sending to sendq */
}
- sockcm_init(&sockc, sk);
+ sockc = (struct sockcm_cookie) { .tsflags = READ_ONCE(sk->sk_tsflags)};
if (msg->msg_controllen) {
err = sock_cmsg_send(sk, msg, &sockc);
if (unlikely(err)) {
--
2.48.1.502.g6dc24dfdaf-goog
next prev parent reply other threads:[~2025-02-06 19:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 19:34 [PATCH net-next 0/7] net: deduplicate cookie logic Willem de Bruijn
2025-02-06 19:34 ` Willem de Bruijn [this message]
2025-02-06 19:34 ` [PATCH net-next 2/7] net: initialize mark in sockcm_init Willem de Bruijn
2025-02-06 19:34 ` [PATCH net-next 3/7] ipv4: initialize inet socket cookies with sockcm_init Willem de Bruijn
2025-02-06 19:34 ` [PATCH net-next 4/7] ipv4: remove get_rttos Willem de Bruijn
2025-02-07 0:59 ` Willem de Bruijn
2025-02-07 17:33 ` Willem de Bruijn
2025-02-08 9:24 ` kernel test robot
2025-02-06 19:34 ` [PATCH net-next 5/7] icmp: reflect tos through ip cookie rather than updating inet_sk Willem de Bruijn
2025-02-07 1:01 ` Willem de Bruijn
2025-02-08 10:40 ` kernel test robot
2025-02-06 19:34 ` [PATCH net-next 6/7] ipv6: replace ipcm6_init calls with ipcm6_init_sk Willem de Bruijn
2025-02-06 19:34 ` [PATCH net-next 7/7] ipv6: initialize inet socket cookies with sockcm_init Willem de Bruijn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250206193521.2285488-2-willemdebruijn.kernel@gmail.com \
--to=willemdebruijn.kernel@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=willemb@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.