Message ID | 1544866389-11168-1-git-send-email-laoar.shao@gmail.com |
---|---|
State | Rejected, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] tcp: minor optimization for calculating packets_out in tcp connect | expand |
On 12/15/2018 01:33 AM, Yafang Shao wrote: > When we building a syn packet, the tcp_skb_pcount(skb) is always 1, > which is set in tcp_init_nondata_skb(). > Regarding the syn_data, it is set through > memcpy(syn_data->cb, syn->cb, sizeof(syn->cb)), > which is always 1 as well. > > So we don't need to use tcp_skb_pcount(skb), that could give us a > little improvement. > I dunno, I find current code more self-documented. This is not fast path, so I would suggest we keep it. Thanks.
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Sat, 15 Dec 2018 04:59:00 -0800 > > > On 12/15/2018 01:33 AM, Yafang Shao wrote: >> When we building a syn packet, the tcp_skb_pcount(skb) is always 1, >> which is set in tcp_init_nondata_skb(). >> Regarding the syn_data, it is set through >> memcpy(syn_data->cb, syn->cb, sizeof(syn->cb)), >> which is always 1 as well. >> >> So we don't need to use tcp_skb_pcount(skb), that could give us a >> little improvement. >> > > I dunno, I find current code more self-documented. > > This is not fast path, so I would suggest we keep it. I agree, I won't be applying this.
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 730bc44..12bb5e7 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -3404,7 +3404,7 @@ static void tcp_connect_queue_skb(struct sock *sk, struct sk_buff *skb) sk->sk_wmem_queued += skb->truesize; sk_mem_charge(sk, skb->truesize); tp->write_seq = tcb->end_seq; - tp->packets_out += tcp_skb_pcount(skb); + tp->packets_out += 1; } /* Build and send a SYN with data and (cached) Fast Open cookie. However, @@ -3486,7 +3486,7 @@ static int tcp_send_syn_data(struct sock *sk, struct sk_buff *syn) /* data was not sent, put it in write_queue */ __skb_queue_tail(&sk->sk_write_queue, syn_data); - tp->packets_out -= tcp_skb_pcount(syn_data); + tp->packets_out -= 1; fallback: /* Send a regular SYN with Fast Open cookie request option */
When we building a syn packet, the tcp_skb_pcount(skb) is always 1, which is set in tcp_init_nondata_skb(). Regarding the syn_data, it is set through memcpy(syn_data->cb, syn->cb, sizeof(syn->cb)), which is always 1 as well. So we don't need to use tcp_skb_pcount(skb), that could give us a little improvement. Signed-off-by: Yafang Shao <laoar.shao@gmail.com> --- net/ipv4/tcp_output.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)