[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAF=yD-JTTmzf_r9uKQkjXNMwLrZx7NSWU3sBG3Kk=8B2ztU0zQ@mail.gmail.com>
Date: Wed, 6 Sep 2017 11:18:58 +0200
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Stephen Hemminger <stephen@...workplumber.org>
Cc: Petar Penkov <ppenkov@...gle.com>,
Network Development <netdev@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>,
Mahesh Bandewar <maheshb@...gle.com>,
Willem de Bruijn <willemb@...gle.com>,
David Miller <davem@...emloft.net>, ppenkov@...nford.edu
Subject: Re: [PATCH net-next RFC 1/2] tun: enable NAPI for TUN/TAP driver
On Wed, Sep 6, 2017 at 12:51 AM, Stephen Hemminger
<stephen@...workplumber.org> wrote:
> On Tue, 5 Sep 2017 15:35:50 -0700
> Petar Penkov <ppenkov@...gle.com> wrote:
>
>> Changes TUN driver to use napi_gro_receive() upon receiving packets
>> rather than netif_rx_ni(). Adds flag CONFIG_TUN_NAPI that enables
>> these changes and operation is not affected if the flag is disabled.
>> SKBs are constructed upon packet arrival and are queued to be
>> processed later.
>>
>> The new path was evaluated with a benchmark with the following setup:
>> Open two tap devices and a receiver thread that reads in a loop for
>> each device. Start one sender thread and pin all threads to different
>> CPUs. Send 1M minimum UDP packets to each device and measure sending
>> time for each of the sending methods:
>> napi_gro_receive(): 4.90s
>> netif_rx_ni(): 4.90s
>> netif_receive_skb(): 7.20s
>>
>> Signed-off-by: Petar Penkov <ppenkov@...gle.com>
>> Cc: Eric Dumazet <edumazet@...gle.com>
>> Cc: Mahesh Bandewar <maheshb@...gle.com>
>> Cc: Willem de Bruijn <willemb@...gle.com>
>> Cc: davem@...emloft.net
>> Cc: ppenkov@...nford.edu
>
> Why is this optional? It adds two code paths both of which need
> to be tested.
If the napi_gro_receive path is no more expensive than netif_receive_skb,
as the evaluation indicates, then it is a good candidate to replace that.
The napi_gro_frags path is purely for code coverage. There is no benefit
to applications to treat data copied from userspace as if it consists of raw
pages of data.
Powered by blists - more mailing lists