On Tue, 5 Sep 2017 15:35:50 -0700 Petar Penkov <ppen...@google.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 <ppen...@google.com> > Cc: Eric Dumazet <eduma...@google.com> > Cc: Mahesh Bandewar <mahe...@google.com> > Cc: Willem de Bruijn <will...@google.com> > Cc: da...@davemloft.net > Cc: ppen...@stanford.edu Why is this optional? It adds two code paths both of which need to be tested.