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