All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>, netdev@vger.kernel.org
Cc: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Subject: Re: unexpected GRO/veth behavior
Date: Mon, 10 Sep 2018 17:22:07 +0200	[thread overview]
Message-ID: <c5be74086876ce96353cb79e6486df321d58d48d.camel@redhat.com> (raw)
In-Reply-To: <f84e9363-bdc0-5e41-ca1a-99f612fcc708@gmail.com>

On Mon, 2018-09-10 at 07:56 -0700, Eric Dumazet wrote:
> 
> On 09/10/2018 07:44 AM, Paolo Abeni wrote:
> > hi all,
> > 
> > while testing some local patches I observed that the TCP tput in the
> > following scenario:
> > 
> > # the following enable napi on veth0, so that we can trigger the
> > # GRO path with namespaces
> > ip netns add test
> > ip link add type veth
> > ip link set dev veth0 netns test
> > ip -n test link set lo up
> > ip -n test link set veth0 up
> > ip -n test addr add dev veth0 172.16.1.2/24
> > ip link set dev veth1 up
> > ip addr add dev veth1 172.16.1.1/24
> > IDX=`ip netns exec test cat /sys/class/net/veth0/ifindex`
> > 
> > # 'xdp_pass' is a NO-OP XDP program that simply return XDP_PASS
> > ip netns exec test ./xdp_pass $IDX &
> > taskset 0x2 ip netns exec test iperf3 -s -i 60 &
> > taskset 0x1 iperf3 -c 172.16.1.2 -t 60 -i 60
> > 
> > is quite lower than expected (~800Mbps). 'perf' shows a weird topmost 
> > offender:
> > 
> 
> 
> But... why GRO would even be needed in this scenario ?

AFAICS, attaching an XDP program to a veth device makes TCP flows over
such veth unconditionally hit this code path since:

commit 948d4f214fde43743c57aae0c708bff44f6345f2
Author: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Date:   Fri Aug 3 16:58:10 2018 +0900

    veth: Add driver XDP

I'm personally looking for some way to hit the GRO code path with
selftest/namespaces.

> GRO is really meant for physical devices, having to mess with skb->sk adds extra cost
> in this already heavy cost engine.

Yup, even if I do not see any measurable cost added by the posted code.

Cheers,

Paolo

  reply	other threads:[~2018-09-10 20:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-10 14:44 unexpected GRO/veth behavior Paolo Abeni
2018-09-10 14:56 ` Eric Dumazet
2018-09-10 15:22   ` Paolo Abeni [this message]
2018-09-10 17:06     ` Eric Dumazet
2018-09-11  0:33   ` Toshiaki Makita
2018-09-11  6:54 ` Paolo Abeni
2018-09-11 10:27   ` Eric Dumazet
2018-09-11 11:07     ` Toshiaki Makita
2018-09-14  2:51       ` Toshiaki Makita
2018-09-11 11:44     ` Paolo Abeni
2018-09-11 15:42       ` Eric Dumazet

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=c5be74086876ce96353cb79e6486df321d58d48d.camel@redhat.com \
    --to=pabeni@redhat.com \
    --cc=eric.dumazet@gmail.com \
    --cc=makita.toshiaki@lab.ntt.co.jp \
    --cc=netdev@vger.kernel.org \
    /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.