[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <71e6518d-5e51-70e9-1526-75c1bf4b740c@lab.ntt.co.jp>
Date: Tue, 11 Sep 2018 09:33:28 +0900
From: Toshiaki Makita <makita.toshiaki@....ntt.co.jp>
To: Eric Dumazet <eric.dumazet@...il.com>,
Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org
Subject: Re: unexpected GRO/veth behavior
On 2018/09/10 23:56, 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 ?
>
> GRO is really meant for physical devices, having to mess with skb->sk adds extra cost
> in this already heavy cost engine.
>
> Virtual devices should already be fed with TSO packets.
Because XDP does not have SG feature (GRO path in veth is used only when
XDP is enabled).
I have tested configuration like this:
NIC ---(XDP_REDIRECT)---> veth===veth (XDP_PASS)
GRO seems to work and improves TCP throughput in this case.
Now I noticed I did not test:
netperf -> veth===veth (XDP_PASS) -> netserver
which I think is the case where Paolo faces a problem.
I think it is not the case XDP can improve performance. I think I can
disable GRO for packets with skb->sk != NULL in veth.
--
Toshiaki Makita
Powered by blists - more mailing lists