From: David Howells <dhowells@redhat.com>
To: netdev@vger.kernel.org
Cc: David Howells <dhowells@redhat.com>,
Marc Dionne <marc.dionne@auristor.com>,
Simon Horman <horms@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
linux-afs@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH net-next v3 07/21] rxrpc: Do lazy DF flag resetting
Date: Wed, 6 Mar 2024 00:06:37 +0000 [thread overview]
Message-ID: <20240306000655.1100294-8-dhowells@redhat.com> (raw)
In-Reply-To: <20240306000655.1100294-1-dhowells@redhat.com>
Don't reset the DF flag after transmission, but rather set it when needed
since it should be a fast op now that we call IP directly.
This includes turning it off for RESPONSE packets and, for the moment, ACK
packets. In future, we will need to turn it on for ACK packets used to do
path MTU discovery.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
---
net/rxrpc/output.c | 4 ++--
net/rxrpc/rxkad.c | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c
index 1e039b6f4494..8aa8ba32eacc 100644
--- a/net/rxrpc/output.c
+++ b/net/rxrpc/output.c
@@ -231,6 +231,7 @@ int rxrpc_send_ack_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb)
txb->ack.previousPacket = htonl(call->rx_highest_seq);
iov_iter_kvec(&msg.msg_iter, WRITE, iov, 1, len);
+ rxrpc_local_dont_fragment(conn->local, false);
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
call->peer->last_tx_at = ktime_get_seconds();
if (ret < 0) {
@@ -406,6 +407,7 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb)
* think it's small enough */
if (txb->len >= call->peer->maxdata)
goto send_fragmentable;
+ rxrpc_local_dont_fragment(conn->local, true);
txb->wire.flags = txb->flags & RXRPC_TXBUF_WIRE_FLAGS;
txb->last_sent = ktime_get_real();
@@ -492,8 +494,6 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb)
rxrpc_inc_stat(call->rxnet, stat_tx_data_send_frag);
ret = do_udp_sendmsg(conn->local->socket, &msg, len);
conn->peer->last_tx_at = ktime_get_seconds();
-
- rxrpc_local_dont_fragment(conn->local, true);
break;
default:
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index 28c9ce763be4..e451ac90bfee 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -726,7 +726,6 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
rxrpc_local_dont_fragment(conn->local, false);
ret = kernel_sendmsg(conn->local->socket, &msg, iov, 3, len);
- rxrpc_local_dont_fragment(conn->local, true);
if (ret < 0) {
trace_rxrpc_tx_fail(conn->debug_id, serial, ret,
rxrpc_tx_point_rxkad_response);
next prev parent reply other threads:[~2024-03-06 0:07 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 0:06 [PATCH net-next v3 00/21] rxrpc: Miscellaneous changes and make use of MSG_SPLICE_PAGES David Howells
2024-03-06 0:06 ` [PATCH net-next v3 01/21] rxrpc: Record the Tx serial in the rxrpc_txbuf and retransmit trace David Howells
2024-03-06 0:06 ` [PATCH net-next v3 02/21] rxrpc: Convert rxrpc_txbuf::flags into a mask and don't use atomics David Howells
2024-03-06 0:06 ` [PATCH net-next v3 03/21] rxrpc: Note cksum in txbuf David Howells
2024-03-06 0:06 ` [PATCH net-next v3 04/21] rxrpc: Fix the names of the fields in the ACK trailer struct David Howells
2024-03-06 0:06 ` [PATCH net-next v3 05/21] rxrpc: Strip barriers and atomics off of timer tracking David Howells
2024-03-06 0:06 ` [PATCH net-next v3 06/21] rxrpc: Remove atomic handling on some fields only used in I/O thread David Howells
2024-03-06 0:06 ` David Howells [this message]
2024-03-06 0:06 ` [PATCH net-next v3 08/21] rxrpc: Merge together DF/non-DF branches of data Tx function David Howells
2024-03-06 0:06 ` [PATCH net-next v3 09/21] rxrpc: Add a kvec[] to the rxrpc_txbuf struct David Howells
2024-03-06 0:06 ` [PATCH net-next v3 10/21] rxrpc: Split up the DATA packet transmission function David Howells
2024-03-06 0:06 ` [PATCH net-next v3 11/21] rxrpc: Don't pick values out of the wire header when setting up security David Howells
2024-03-06 0:06 ` [PATCH net-next v3 12/21] rxrpc: Move rxrpc_send_ACK() to output.c with rxrpc_send_ack_packet() David Howells
2024-03-06 0:06 ` [PATCH net-next v3 13/21] rxrpc: Use rxrpc_txbuf::kvec[0] instead of rxrpc_txbuf::wire David Howells
2024-03-06 0:06 ` [PATCH net-next v3 14/21] rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags David Howells
2024-03-06 0:06 ` [PATCH net-next v3 15/21] rxrpc: Parse received packets before dealing with timeouts David Howells
2024-03-06 0:06 ` [PATCH net-next v3 16/21] rxrpc: Don't permit resending after all Tx packets acked David Howells
2024-03-06 0:06 ` [PATCH net-next v3 17/21] rxrpc: Differentiate PING ACK transmission traces David Howells
2024-03-06 0:06 ` [PATCH net-next v3 18/21] rxrpc: Use ktimes for call timeout tracking and set the timer lazily David Howells
2024-03-06 0:06 ` [PATCH net-next v3 19/21] rxrpc: Record probes after transmission and reduce number of time-gets David Howells
2024-03-06 0:06 ` [PATCH net-next v3 20/21] rxrpc: Clean up the resend algorithm David Howells
2024-03-06 0:06 ` [PATCH net-next v3 21/21] rxrpc: Extract useful fields from a received ACK to skb priv data David Howells
2024-03-07 9:39 ` [PATCH net-next v3 00/21] rxrpc: Miscellaneous changes and make use of MSG_SPLICE_PAGES Simon Horman
2024-03-08 5:10 ` patchwork-bot+netdevbpf
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=20240306000655.1100294-8-dhowells@redhat.com \
--to=dhowells@redhat.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-afs@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.dionne@auristor.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).