netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] tcp: tx side cleanups
@ 2021-10-27 20:19 Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 1/7] tcp: remove dead code from tcp_sendmsg_locked() Eric Dumazet
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

We no longer need to set skb->reserved_tailroom because
TCP sendmsg() do not put payload in skb->head anymore.

Also do some cleanups around skb->ip_summed/csum,
and CP_SKB_CB(skb)->sacked for fresh skbs.

Eric Dumazet (7):
  tcp: remove dead code from tcp_sendmsg_locked()
  tcp: cleanup tcp_remove_empty_skb() use
  tcp: remove dead code from tcp_collapse_retrans()
  tcp: no longer set skb->reserved_tailroom
  tcp: factorize ip_summed setting
  tcp: do not clear skb->csum if already zero
  tcp: do not clear TCP_SKB_CB(skb)->sacked if already zero

 include/net/tcp.h     |  2 +-
 net/ipv4/tcp.c        | 29 +++++++----------------------
 net/ipv4/tcp_output.c | 22 +++-------------------
 net/ipv6/tcp_ipv6.c   |  1 -
 net/mptcp/protocol.c  |  7 +++----
 5 files changed, 14 insertions(+), 47 deletions(-)

-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH net-next 1/7] tcp: remove dead code from tcp_sendmsg_locked()
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 2/7] tcp: cleanup tcp_remove_empty_skb() use Eric Dumazet
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

TCP sendmsg() no longer puts payload in skb head, we can remove
dead code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index d0b848ff5c0f1f7c34cea1b178b700c264893724..4053ace0cd76fbf076e422017fa31a472f00d7ba 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1309,14 +1309,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
 		if (copy > msg_data_left(msg))
 			copy = msg_data_left(msg);
 
-		/* Where to copy to? */
-		if (skb_availroom(skb) > 0 && !zc) {
-			/* We have some space in skb head. Superb! */
-			copy = min_t(int, copy, skb_availroom(skb));
-			err = skb_add_data_nocache(sk, skb, &msg->msg_iter, copy);
-			if (err)
-				goto do_fault;
-		} else if (!zc) {
+		if (!zc) {
 			bool merge = true;
 			int i = skb_shinfo(skb)->nr_frags;
 			struct page_frag *pfrag = sk_page_frag(sk);
@@ -1416,7 +1409,6 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
 
 do_error:
 	skb = tcp_write_queue_tail(sk);
-do_fault:
 	tcp_remove_empty_skb(sk, skb);
 
 	if (copied + copied_syn)
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 2/7] tcp: cleanup tcp_remove_empty_skb() use
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 1/7] tcp: remove dead code from tcp_sendmsg_locked() Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 3/7] tcp: remove dead code from tcp_collapse_retrans() Eric Dumazet
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

All tcp_remove_empty_skb() callers now use tcp_write_queue_tail()
for the skb argument, we can therefore factorize code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/tcp.h    | 2 +-
 net/ipv4/tcp.c       | 9 +++++----
 net/mptcp/protocol.c | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 701587af685296a6b2372fee7b3e94f998c3bbe8..8e8c5922a7b0c0a268a4c5a53d223489a10ca0bd 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -311,7 +311,7 @@ void tcp_shutdown(struct sock *sk, int how);
 int tcp_v4_early_demux(struct sk_buff *skb);
 int tcp_v4_rcv(struct sk_buff *skb);
 
-void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb);
+void tcp_remove_empty_skb(struct sock *sk);
 int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
 int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size);
 int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size);
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 4053ace0cd76fbf076e422017fa31a472f00d7ba..68b946cfd433720a034c2023a13c086428646c51 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -933,8 +933,10 @@ int tcp_send_mss(struct sock *sk, int *size_goal, int flags)
  * importantly be able to generate EPOLLOUT for Edge Trigger epoll()
  * users.
  */
-void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb)
+void tcp_remove_empty_skb(struct sock *sk)
 {
+	struct sk_buff *skb = tcp_write_queue_tail(sk);
+
 	if (skb && TCP_SKB_CB(skb)->seq == TCP_SKB_CB(skb)->end_seq) {
 		tcp_unlink_write_queue(skb, sk);
 		if (tcp_write_queue_empty(sk))
@@ -1087,7 +1089,7 @@ ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset,
 	return copied;
 
 do_error:
-	tcp_remove_empty_skb(sk, tcp_write_queue_tail(sk));
+	tcp_remove_empty_skb(sk);
 	if (copied)
 		goto out;
 out_err:
@@ -1408,8 +1410,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
 	return copied + copied_syn;
 
 do_error:
-	skb = tcp_write_queue_tail(sk);
-	tcp_remove_empty_skb(sk, skb);
+	tcp_remove_empty_skb(sk);
 
 	if (copied + copied_syn)
 		goto out;
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index cd6b11c9b54d18e03bd3572e1f96c78d3dc37a2d..ccd62a2727c36a749455d122c106b4c5f76ef2ba 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1335,7 +1335,7 @@ static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk,
 		u64 snd_una = READ_ONCE(msk->snd_una);
 
 		if (snd_una != msk->snd_nxt) {
-			tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
+			tcp_remove_empty_skb(ssk);
 			return 0;
 		}
 
@@ -1351,7 +1351,7 @@ static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk,
 
 	copy = min_t(size_t, copy, info->limit - info->sent);
 	if (!sk_wmem_schedule(ssk, copy)) {
-		tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
+		tcp_remove_empty_skb(ssk);
 		return -ENOMEM;
 	}
 
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 3/7] tcp: remove dead code from tcp_collapse_retrans()
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 1/7] tcp: remove dead code from tcp_sendmsg_locked() Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 2/7] tcp: cleanup tcp_remove_empty_skb() use Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 4/7] tcp: no longer set skb->reserved_tailroom Eric Dumazet
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

TCP sendmsg() no longer puts payload in skb->head,
remove some dead code from tcp_collapse_retrans().

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp_output.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index c0c55a8be8f79857e176714f240fddcb0580fa6b..e1dcc93d5b6daf34e41817658c4f2029d429e82b 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -3045,13 +3045,9 @@ static bool tcp_collapse_retrans(struct sock *sk, struct sk_buff *skb)
 
 	BUG_ON(tcp_skb_pcount(skb) != 1 || tcp_skb_pcount(next_skb) != 1);
 
-	if (next_skb_size) {
-		if (next_skb_size <= skb_availroom(skb))
-			skb_copy_bits(next_skb, 0, skb_put(skb, next_skb_size),
-				      next_skb_size);
-		else if (!tcp_skb_shift(skb, next_skb, 1, next_skb_size))
-			return false;
-	}
+	if (next_skb_size && !tcp_skb_shift(skb, next_skb, 1, next_skb_size))
+		return false;
+
 	tcp_highest_sack_replace(sk, next_skb, skb);
 
 	/* Update sequence range on original skb. */
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 4/7] tcp: no longer set skb->reserved_tailroom
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
                   ` (2 preceding siblings ...)
  2021-10-27 20:19 ` [PATCH net-next 3/7] tcp: remove dead code from tcp_collapse_retrans() Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 5/7] tcp: factorize ip_summed setting Eric Dumazet
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

TCP/MPTCP sendmsg() no longer puts payload in skb->head,
we can remove not needed code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp.c       | 5 -----
 net/mptcp/protocol.c | 1 -
 2 files changed, 6 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 68b946cfd433720a034c2023a13c086428646c51..66ed0d79f41472f013edffe19802441e995175c9 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -876,11 +876,6 @@ struct sk_buff *tcp_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
 		}
 		if (likely(mem_scheduled)) {
 			skb_reserve(skb, MAX_TCP_HEADER);
-			/*
-			 * Make sure that we have exactly size bytes
-			 * available to the caller, no more, no less.
-			 */
-			skb->reserved_tailroom = skb->end - skb->tail - size;
 			INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
 			return skb;
 		}
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index ccd62a2727c36a749455d122c106b4c5f76ef2ba..22c7d10db15f8321e988602b8c97a46ffd872298 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1218,7 +1218,6 @@ static struct sk_buff *__mptcp_do_alloc_tx_skb(struct sock *sk, gfp_t gfp)
 	if (likely(skb)) {
 		if (likely(__mptcp_add_ext(skb, gfp))) {
 			skb_reserve(skb, MAX_TCP_HEADER);
-			skb->reserved_tailroom = skb->end - skb->tail;
 			INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
 			return skb;
 		}
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 5/7] tcp: factorize ip_summed setting
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
                   ` (3 preceding siblings ...)
  2021-10-27 20:19 ` [PATCH net-next 4/7] tcp: no longer set skb->reserved_tailroom Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 6/7] tcp: do not clear skb->csum if already zero Eric Dumazet
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

Setting skb->ip_summed to CHECKSUM_PARTIAL can be centralized
in tcp_stream_alloc_skb() and __mptcp_do_alloc_tx_skb()
instead of being done multiple times.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp.c        | 3 +--
 net/ipv4/tcp_output.c | 6 ------
 net/mptcp/protocol.c  | 2 +-
 3 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 66ed0d79f41472f013edffe19802441e995175c9..c58d448b45a098b23fdc09530c2565326e77c29f 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -876,6 +876,7 @@ struct sk_buff *tcp_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
 		}
 		if (likely(mem_scheduled)) {
 			skb_reserve(skb, MAX_TCP_HEADER);
+			skb->ip_summed = CHECKSUM_PARTIAL;
 			INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
 			return skb;
 		}
@@ -993,7 +994,6 @@ static struct sk_buff *tcp_build_frag(struct sock *sk, int size_goal, int flags,
 	skb->truesize += copy;
 	sk_wmem_queued_add(sk, copy);
 	sk_mem_charge(sk, copy);
-	skb->ip_summed = CHECKSUM_PARTIAL;
 	WRITE_ONCE(tp->write_seq, tp->write_seq + copy);
 	TCP_SKB_CB(skb)->end_seq += copy;
 	tcp_skb_pcount_set(skb, 0);
@@ -1289,7 +1289,6 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
 				goto wait_for_space;
 
 			process_backlog++;
-			skb->ip_summed = CHECKSUM_PARTIAL;
 
 			tcp_skb_entail(sk, skb);
 			copy = size_goal;
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index e1dcc93d5b6daf34e41817658c4f2029d429e82b..7ecf35d0f847c0c6aa34d3cb05e3f28a623216bd 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1590,8 +1590,6 @@ int tcp_fragment(struct sock *sk, enum tcp_queue tcp_queue,
 
 	skb_split(skb, buff, len);
 
-	buff->ip_summed = CHECKSUM_PARTIAL;
-
 	buff->tstamp = skb->tstamp;
 	tcp_fragment_tstamp(skb, buff);
 
@@ -1676,7 +1674,6 @@ int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len)
 	delta_truesize = __pskb_trim_head(skb, len);
 
 	TCP_SKB_CB(skb)->seq += len;
-	skb->ip_summed = CHECKSUM_PARTIAL;
 
 	if (delta_truesize) {
 		skb->truesize	   -= delta_truesize;
@@ -2147,7 +2144,6 @@ static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,
 
 	tcp_skb_fragment_eor(skb, buff);
 
-	buff->ip_summed = CHECKSUM_PARTIAL;
 	skb_split(skb, buff, len);
 	tcp_fragment_tstamp(skb, buff);
 
@@ -2403,7 +2399,6 @@ static int tcp_mtu_probe(struct sock *sk)
 	TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
 	TCP_SKB_CB(nskb)->sacked = 0;
 	nskb->csum = 0;
-	nskb->ip_summed = CHECKSUM_PARTIAL;
 
 	tcp_insert_write_queue_before(nskb, skb, sk);
 	tcp_highest_sack_replace(sk, skb, nskb);
@@ -3753,7 +3748,6 @@ static int tcp_send_syn_data(struct sock *sk, struct sk_buff *syn)
 	syn_data = tcp_stream_alloc_skb(sk, space, sk->sk_allocation, false);
 	if (!syn_data)
 		goto fallback;
-	syn_data->ip_summed = CHECKSUM_PARTIAL;
 	memcpy(syn_data->cb, syn->cb, sizeof(syn->cb));
 	if (space) {
 		int copied = copy_from_iter(skb_put(syn_data, space), space,
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 22c7d10db15f8321e988602b8c97a46ffd872298..b84a89b2897114f6efb95fd75d5959fd4f5fd083 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1218,6 +1218,7 @@ static struct sk_buff *__mptcp_do_alloc_tx_skb(struct sock *sk, gfp_t gfp)
 	if (likely(skb)) {
 		if (likely(__mptcp_add_ext(skb, gfp))) {
 			skb_reserve(skb, MAX_TCP_HEADER);
+			skb->ip_summed = CHECKSUM_PARTIAL;
 			INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
 			return skb;
 		}
@@ -1366,7 +1367,6 @@ static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk,
 	skb->truesize += copy;
 	sk_wmem_queued_add(ssk, copy);
 	sk_mem_charge(ssk, copy);
-	skb->ip_summed = CHECKSUM_PARTIAL;
 	WRITE_ONCE(tcp_sk(ssk)->write_seq, tcp_sk(ssk)->write_seq + copy);
 	TCP_SKB_CB(skb)->end_seq += copy;
 	tcp_skb_pcount_set(skb, 0);
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 6/7] tcp: do not clear skb->csum if already zero
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
                   ` (4 preceding siblings ...)
  2021-10-27 20:19 ` [PATCH net-next 5/7] tcp: factorize ip_summed setting Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-27 20:19 ` [PATCH net-next 7/7] tcp: do not clear TCP_SKB_CB(skb)->sacked " Eric Dumazet
  2021-10-28 12:20 ` [PATCH net-next 0/7] tcp: tx side cleanups patchwork-bot+netdevbpf
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

Freshly allocated skbs have their csum field cleared already.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp.c        | 1 -
 net/ipv4/tcp_output.c | 1 -
 net/ipv6/tcp_ipv6.c   | 1 -
 3 files changed, 3 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index c58d448b45a098b23fdc09530c2565326e77c29f..88475b64034432d4bb3c6989a69a3041ae6e7711 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -658,7 +658,6 @@ void tcp_skb_entail(struct sock *sk, struct sk_buff *skb)
 	struct tcp_sock *tp = tcp_sk(sk);
 	struct tcp_skb_cb *tcb = TCP_SKB_CB(skb);
 
-	skb->csum    = 0;
 	tcb->seq     = tcb->end_seq = tp->write_seq;
 	tcb->tcp_flags = TCPHDR_ACK;
 	tcb->sacked  = 0;
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 7ecf35d0f847c0c6aa34d3cb05e3f28a623216bd..5664355b0d09abc701ba7b422340ed9699bc71f0 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2398,7 +2398,6 @@ static int tcp_mtu_probe(struct sock *sk)
 	TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size;
 	TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
 	TCP_SKB_CB(nskb)->sacked = 0;
-	nskb->csum = 0;
 
 	tcp_insert_write_queue_before(nskb, skb, sk);
 	tcp_highest_sack_replace(sk, skb, nskb);
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index c678e778c1fb8f8cb7300c23cb876ef0d8e750c8..2cc9b0e53ad1c8e2d35fc9c6dbd1e90fee40b632 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -969,7 +969,6 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
 	fl6.flowlabel = label;
 
 	buff->ip_summed = CHECKSUM_PARTIAL;
-	buff->csum = 0;
 
 	__tcp_v6_send_check(buff, &fl6.saddr, &fl6.daddr);
 
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 7/7] tcp: do not clear TCP_SKB_CB(skb)->sacked if already zero
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
                   ` (5 preceding siblings ...)
  2021-10-27 20:19 ` [PATCH net-next 6/7] tcp: do not clear skb->csum if already zero Eric Dumazet
@ 2021-10-27 20:19 ` Eric Dumazet
  2021-10-28 12:20 ` [PATCH net-next 0/7] tcp: tx side cleanups patchwork-bot+netdevbpf
  7 siblings, 0 replies; 9+ messages in thread
From: Eric Dumazet @ 2021-10-27 20:19 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet

From: Eric Dumazet <edumazet@google.com>

Freshly allocated skbs have zero in skb->cb[] already.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 net/ipv4/tcp.c        | 1 -
 net/ipv4/tcp_output.c | 5 -----
 2 files changed, 6 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 88475b64034432d4bb3c6989a69a3041ae6e7711..7a7b9aa8f19a76861b2aa21395e085c1dde6deb0 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -660,7 +660,6 @@ void tcp_skb_entail(struct sock *sk, struct sk_buff *skb)
 
 	tcb->seq     = tcb->end_seq = tp->write_seq;
 	tcb->tcp_flags = TCPHDR_ACK;
-	tcb->sacked  = 0;
 	__skb_header_release(skb);
 	tcp_add_write_queue_tail(sk, skb);
 	sk_wmem_queued_add(sk, skb->truesize);
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 5664355b0d09abc701ba7b422340ed9699bc71f0..6867e5db3e352d35b94b212db8b72f88672e3d1d 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -394,7 +394,6 @@ static void tcp_init_nondata_skb(struct sk_buff *skb, u32 seq, u8 flags)
 	skb->ip_summed = CHECKSUM_PARTIAL;
 
 	TCP_SKB_CB(skb)->tcp_flags = flags;
-	TCP_SKB_CB(skb)->sacked = 0;
 
 	tcp_skb_pcount_set(skb, 1);
 
@@ -2139,9 +2138,6 @@ static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,
 	TCP_SKB_CB(skb)->tcp_flags = flags & ~(TCPHDR_FIN | TCPHDR_PSH);
 	TCP_SKB_CB(buff)->tcp_flags = flags;
 
-	/* This packet was never sent out yet, so no SACK bits. */
-	TCP_SKB_CB(buff)->sacked = 0;
-
 	tcp_skb_fragment_eor(skb, buff);
 
 	skb_split(skb, buff, len);
@@ -2397,7 +2393,6 @@ static int tcp_mtu_probe(struct sock *sk)
 	TCP_SKB_CB(nskb)->seq = TCP_SKB_CB(skb)->seq;
 	TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size;
 	TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
-	TCP_SKB_CB(nskb)->sacked = 0;
 
 	tcp_insert_write_queue_before(nskb, skb, sk);
 	tcp_highest_sack_replace(sk, skb, nskb);
-- 
2.33.0.1079.g6e70778dc9-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH net-next 0/7] tcp: tx side cleanups
  2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
                   ` (6 preceding siblings ...)
  2021-10-27 20:19 ` [PATCH net-next 7/7] tcp: do not clear TCP_SKB_CB(skb)->sacked " Eric Dumazet
@ 2021-10-28 12:20 ` patchwork-bot+netdevbpf
  7 siblings, 0 replies; 9+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-10-28 12:20 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: davem, kuba, netdev, edumazet

Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Wed, 27 Oct 2021 13:19:16 -0700 you wrote:
> From: Eric Dumazet <edumazet@google.com>
> 
> We no longer need to set skb->reserved_tailroom because
> TCP sendmsg() do not put payload in skb->head anymore.
> 
> Also do some cleanups around skb->ip_summed/csum,
> and CP_SKB_CB(skb)->sacked for fresh skbs.
> 
> [...]

Here is the summary with links:
  - [net-next,1/7] tcp: remove dead code from tcp_sendmsg_locked()
    https://git.kernel.org/netdev/net-next/c/3ded97bc41a1
  - [net-next,2/7] tcp: cleanup tcp_remove_empty_skb() use
    https://git.kernel.org/netdev/net-next/c/27728ba80f1e
  - [net-next,3/7] tcp: remove dead code from tcp_collapse_retrans()
    https://git.kernel.org/netdev/net-next/c/bd4463147171
  - [net-next,4/7] tcp: no longer set skb->reserved_tailroom
    https://git.kernel.org/netdev/net-next/c/f401da475f98
  - [net-next,5/7] tcp: factorize ip_summed setting
    https://git.kernel.org/netdev/net-next/c/a52fe46ef160
  - [net-next,6/7] tcp: do not clear skb->csum if already zero
    https://git.kernel.org/netdev/net-next/c/4f2266748eab
  - [net-next,7/7] tcp: do not clear TCP_SKB_CB(skb)->sacked if already zero
    https://git.kernel.org/netdev/net-next/c/8b7d8c2bdb76

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-10-28 12:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-27 20:19 [PATCH net-next 0/7] tcp: tx side cleanups Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 1/7] tcp: remove dead code from tcp_sendmsg_locked() Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 2/7] tcp: cleanup tcp_remove_empty_skb() use Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 3/7] tcp: remove dead code from tcp_collapse_retrans() Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 4/7] tcp: no longer set skb->reserved_tailroom Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 5/7] tcp: factorize ip_summed setting Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 6/7] tcp: do not clear skb->csum if already zero Eric Dumazet
2021-10-27 20:19 ` [PATCH net-next 7/7] tcp: do not clear TCP_SKB_CB(skb)->sacked " Eric Dumazet
2021-10-28 12:20 ` [PATCH net-next 0/7] tcp: tx side cleanups patchwork-bot+netdevbpf

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).