From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Miller <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
Neal Cardwell <ncardwell@google.com>,
netfilter-devel@vger.kernel.org,
Tom Herbert <therbert@google.com>
Subject: Re: [PATCH net] ipv4: set transport header earlier
Date: Tue, 16 Jul 2013 17:24:48 +0400 [thread overview]
Message-ID: <51E549A0.206@cogentembedded.com> (raw)
In-Reply-To: <1373943799.10804.96.camel@edumazet-glaptop>
Hello.
On 16-07-2013 7:03, Eric Dumazet wrote:
> From: Eric Dumazet <edumazet@google.com>
> commit 45f00f99d6e ("ipv4: tcp: clean up tcp_v4_early_demux()") added a
> performance regression for non GRO traffic, basically disabling
> IP early demux.
> IPv6 stack resets transport header in ip6_rcv() before calling
> IP early demux in ip6_rcv_finish(), while IPv4 does this only in
> ip_local_deliver_finish(), _after_ IP early demux.
> GRO traffic happened to enable IP early demux because transport header
> is also set in inet_gro_receive()
> Instead of reverting the faulty commit, we can make IPv4/IPv6 behave the
> same : transport_header should be set in ip_rcv() instead of
> ip_local_deliver_finish()
> ip_local_deliver_finish() can also use skb_network_header_len() which is
> faster than ip_hdrlen()
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Cc: Neal Cardwell <ncardwell@google.com>
> Cc: Tom Herbert <therbert@google.com>
> ---
> net/ipv4/ip_input.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
> diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
> index 3da817b..15e3e68 100644
> --- a/net/ipv4/ip_input.c
> +++ b/net/ipv4/ip_input.c
[...]
> @@ -437,6 +434,8 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
> goto drop;
> }
>
> + skb->transport_header = skb->network_header + iph->ihl*4;
Spaces around * wouldn't hurt, to be consistent with the rest of the
statement and the Linux style in common.
WBR, Sergei
next prev parent reply other threads:[~2013-07-16 13:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 3:03 [PATCH net] ipv4: set transport header earlier Eric Dumazet
2013-07-16 13:24 ` Sergei Shtylyov [this message]
2013-07-16 13:56 ` Eric Dumazet
2013-07-16 20:00 ` David Miller
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=51E549A0.206@cogentembedded.com \
--to=sergei.shtylyov@cogentembedded.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=therbert@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.