From patchwork Tue May 29 13:35:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 922131 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Sd0mBczw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40wF9c4WJkz9s0W for ; Tue, 29 May 2018 23:36:04 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934585AbeE2Nfe (ORCPT ); Tue, 29 May 2018 09:35:34 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:43285 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934294AbeE2Nfa (ORCPT ); Tue, 29 May 2018 09:35:30 -0400 Received: by mail-pl0-f65.google.com with SMTP id c41-v6so8955584plj.10; Tue, 29 May 2018 06:35:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Ch1pMEWb+dK4eJ+LZxoeMQfdEC44RR1yVoMXJNF5h9A=; b=Sd0mBczwxe1LM4q6ix5MfhBqNyzLjo8xd8Ex5WUvTsZ00fygxXng5ssBBuQqlpvV8L D8h3I/d+10tr8jYGPZ+xC4iXrFP+RYGNnN85kdKAZ31pES2uT9CSXjerSAyZy0CECz1b G9491DSKIU3paBw/LDzVuJf/pc7HrZbzf3Mia3MWiuqE0BZHfWOUJ6jC2DPOPZNltGnp WK/CfSSAI2f+tlJZx2eOlikcFJHsM0SX72+LML2GYvv++yfQrTOIxuWq5PehcC7IVUsB 7mJw/69YH9Efo8KGH+SYUmWDdhO1CWuK/LRsgY48f/uJC4UJT8WrBB5sL2HFxcaodVhD 2t/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ch1pMEWb+dK4eJ+LZxoeMQfdEC44RR1yVoMXJNF5h9A=; b=PuJsB4eEtllL9qy3ZxjBGW47iGO+GBr/Aa+NkgC05SmXfYKAltJkBvroI74Ejmn3BP Cr+JIm07FqKSMq6iuxHNaDUpukMbbjtlZdJd5mz2rCC2eYfZKacWB4OS6peq7KuCtdYv XKs+XYIraCBFJq8ANk9/Zh/4LmuHUf6wVPKBsnOS/XIN6IMg92RisrQXg0t9S1Sd657Y uLlN1Q/pN3iO2g44youeurhGncDsrnxedbTJuu4jtR4wqSfU6EL93tjTWNCRr/Lm2dJB KBD3OJkKHAJ0QZ6aJPiuoTUnwT/1K5zraZoSwsjrkjLwBiWsjNR/xNROjbKTHnT0Kb6O +Waw== X-Gm-Message-State: ALKqPwf4MBbD+uaVdneBYx70KpxL4EX0DvoDiSOoyX+2ez5SPNYflurh A03egkuy7SkWynbmikVvsUE= X-Google-Smtp-Source: AB8JxZq3c93tnWH409JnltS9F+Kl43yfjvlRW7Bc0zQ9iMnev4ESGce9zE6qzhJKUQ12qsxtMY1kkw== X-Received: by 2002:a17:902:24a5:: with SMTP id w34-v6mr17566848pla.52.1527600929710; Tue, 29 May 2018 06:35:29 -0700 (PDT) Received: from li1588-6.members.linode.com (li1588-6.members.linode.com. [139.162.104.6]) by smtp.gmail.com with ESMTPSA id q82-v6sm16459605pfg.170.2018.05.29.06.35.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 May 2018 06:35:28 -0700 (PDT) From: Yafang Shao To: songliubraving@fb.com, edumazet@google.com, davem@davemloft.net Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v4 net-next 1/2] tcp: use data length instead of skb->len in tcp_probe Date: Tue, 29 May 2018 21:35:14 +0800 Message-Id: <1527600915-10955-1-git-send-email-laoar.shao@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org At this point skb->len is including tcp header length, so it is meaningless to user. data length could be more helpful, with which we can easily filter out the packet without payload. Cc: Eric Dumazet Acked-by: Song Liu Signed-off-by: Yafang Shao --- v4: no change on this patch v3: tcp_hdr() is a little expensive than skb->data, so replace it with skb->data. --- include/trace/events/tcp.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/trace/events/tcp.h b/include/trace/events/tcp.h index c1a5284..7ff0446 100644 --- a/include/trace/events/tcp.h +++ b/include/trace/events/tcp.h @@ -236,7 +236,7 @@ __field(__u16, sport) __field(__u16, dport) __field(__u32, mark) - __field(__u16, length) + __field(__u16, data_len) __field(__u32, snd_nxt) __field(__u32, snd_una) __field(__u32, snd_cwnd) @@ -250,6 +250,7 @@ TP_fast_assign( const struct tcp_sock *tp = tcp_sk(sk); const struct inet_sock *inet = inet_sk(sk); + const struct tcphdr *th = (const struct tcphdr *)skb->data; memset(__entry->saddr, 0, sizeof(struct sockaddr_in6)); memset(__entry->daddr, 0, sizeof(struct sockaddr_in6)); @@ -261,7 +262,7 @@ __entry->dport = ntohs(inet->inet_dport); __entry->mark = skb->mark; - __entry->length = skb->len; + __entry->data_len = skb->len - __tcp_hdrlen(th); __entry->snd_nxt = tp->snd_nxt; __entry->snd_una = tp->snd_una; __entry->snd_cwnd = tp->snd_cwnd; @@ -272,9 +273,9 @@ __entry->sock_cookie = sock_gen_cookie(sk); ), - TP_printk("src=%pISpc dest=%pISpc mark=%#x length=%d snd_nxt=%#x snd_una=%#x snd_cwnd=%u ssthresh=%u snd_wnd=%u srtt=%u rcv_wnd=%u sock_cookie=%llx", + TP_printk("src=%pISpc dest=%pISpc mark=%#x data_len=%d snd_nxt=%#x snd_una=%#x snd_cwnd=%u ssthresh=%u snd_wnd=%u srtt=%u rcv_wnd=%u sock_cookie=%llx", __entry->saddr, __entry->daddr, __entry->mark, - __entry->length, __entry->snd_nxt, __entry->snd_una, + __entry->data_len, __entry->snd_nxt, __entry->snd_una, __entry->snd_cwnd, __entry->ssthresh, __entry->snd_wnd, __entry->srtt, __entry->rcv_wnd, __entry->sock_cookie) ); From patchwork Tue May 29 13:35:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yafang Shao X-Patchwork-Id: 922130 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="XuQ2mnFg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40wF9W4tyJz9s0W for ; Tue, 29 May 2018 23:35:59 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934619AbeE2Nff (ORCPT ); Tue, 29 May 2018 09:35:35 -0400 Received: from mail-pl0-f66.google.com ([209.85.160.66]:43289 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934136AbeE2Nfc (ORCPT ); Tue, 29 May 2018 09:35:32 -0400 Received: by mail-pl0-f66.google.com with SMTP id c41-v6so8955638plj.10; Tue, 29 May 2018 06:35:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vk4QaNdNO9IwGdC6wcyZRKRrVCyhUt89ubVmTYSe+ag=; b=XuQ2mnFgIfCfGLtZIALHXqUj92e8YoI0F13NuTtvsS4SKPw6XEGNf29vHqyqc4ZTwg Hye/Mh3FUgd7Ierpj6BcJ1MXqOadDLmqwjNJYEo+aNJj3apCso3w+v7pvMI0KKLnMZJ8 bDJZgyR6Lol1JOEnaGUfwlrtpVjhSKtbWIag18qf7Dvntjxly6TFGFxsYQ+7fZC/CBgt gtL0kAZLqTCiJJuM3XKILATO0Jj080uFcEEOv4RCU6sj1St8mgdkkvMeT2VJx/i/XPCq tQV/4OV6/63c1QMyAjAQGDWBGDfSLd3qJYt6ahisCsZJJU5DSj1hAZjEDUSRvqW90caC QdjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vk4QaNdNO9IwGdC6wcyZRKRrVCyhUt89ubVmTYSe+ag=; b=agGd5Zp2qkONwRo/doIYTAB+xvktQFFkjIPFoHALiAwy7uA4u6WijHkwvw9jRplG8R eG5OUfC7M1bYSHn+AZxQXNBa1zVp4bGeOhlwNtITXdz/4EURw3tWS6sPCmfFJzAjy12s tmhJlS5KatAKIIm/3Dm4PXHeFAq2jcxNu+IuYJrK1azKw9D4LrzAfGlkGyIku4QeC/Bd X29tisYaedrxlSFCvqhDbB+TMXmIwg2pvrAl4W+K+S4LUAK0KUXOGqdvvmrM+u4ZfhSs fc6W6VCbhrI5Z2HiH50ubXc0k48XxZ6ff4rE/f13XICe5A3sEXUVmxWfvP5hKBZHCy2F 4VIg== X-Gm-Message-State: ALKqPwdIhkMEraLxDixvA6zHs0228x3SnFizOjUzjXZqOhINzMD/J0OW 1SpTQ5gsqnthcfJPN8k5n8U= X-Google-Smtp-Source: ADUXVKIXmzBAdIAn5dPx73B2XFo2YIMKpZB2nsUOwV+rMyB1wq4e4rXLlx/neUVAZumJPoa5XYQ4PQ== X-Received: by 2002:a17:902:8604:: with SMTP id f4-v6mr9221076plo.4.1527600931772; Tue, 29 May 2018 06:35:31 -0700 (PDT) Received: from li1588-6.members.linode.com (li1588-6.members.linode.com. [139.162.104.6]) by smtp.gmail.com with ESMTPSA id q82-v6sm16459605pfg.170.2018.05.29.06.35.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 May 2018 06:35:31 -0700 (PDT) From: Yafang Shao To: songliubraving@fb.com, edumazet@google.com, davem@davemloft.net Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Yafang Shao Subject: [PATCH v4 net-next 2/2] tcp: minor optimization around tcp_hdr() usage in tcp receive path Date: Tue, 29 May 2018 21:35:15 +0800 Message-Id: <1527600915-10955-2-git-send-email-laoar.shao@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1527600915-10955-1-git-send-email-laoar.shao@gmail.com> References: <1527600915-10955-1-git-send-email-laoar.shao@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is additional to the commit ea1627c20c34 ("tcp: minor optimizations around tcp_hdr() usage"). At this point, skb->data is same with tcp_hdr() as tcp header has not been pulled yet. Remove the third parameter of tcp_rcv_established() and put it into the function body. Cc: Eric Dumazet Signed-off-by: Yafang Shao --- v4: remove the third parameter of tcp_rcv_established() --- include/net/tcp.h | 3 +-- net/ipv4/tcp_input.c | 4 ++-- net/ipv4/tcp_ipv4.c | 2 +- net/ipv6/tcp_ipv6.c | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index 952d842..029a51b 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -334,8 +334,7 @@ ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset, void tcp_delack_timer_handler(struct sock *sk); int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg); int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb); -void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, - const struct tcphdr *th); +void tcp_rcv_established(struct sock *sk, struct sk_buff *skb); void tcp_rcv_space_adjust(struct sock *sk); int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp); void tcp_twsk_destructor(struct sock *sk); diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 1191cac..1d70dab 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -5390,11 +5390,11 @@ static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb, * the rest is checked inline. Fast processing is turned on in * tcp_data_queue when everything is OK. */ -void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, - const struct tcphdr *th) +void tcp_rcv_established(struct sock *sk, struct sk_buff *skb) { unsigned int len = skb->len; struct tcp_sock *tp = tcp_sk(sk); + const struct tcphdr *th = (const struct tcphdr *)skb->data; /* TCP congestion window tracking */ trace_tcp_probe(sk, skb); diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index adbdb50..749b0ef 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1486,7 +1486,7 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) sk->sk_rx_dst = NULL; } } - tcp_rcv_established(sk, skb, tcp_hdr(skb)); + tcp_rcv_established(sk, skb); return 0; } diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 7d47c2b..8764a63 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -1322,7 +1322,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) } } - tcp_rcv_established(sk, skb, tcp_hdr(skb)); + tcp_rcv_established(sk, skb); if (opt_skb) goto ipv6_pktoptions; return 0;