Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1643632

Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing

From "Michael S. Tsirkin" <mst@redhat.com>
Newsgroups linux.kernel
Subject Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing
Date 2017-05-17 23:10 +0200
Message-ID <tIemK-8jO-11@gated-at.bofh.it> (permalink)
References <tHYBj-6Fi-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wed, May 17, 2017 at 12:14:36PM +0800, Jason Wang wrote:
> This series tries to implement rx batching for vhost-net. This is done
> by batching the dequeuing from skb_array which was exported by
> underlayer socket and pass the sbk back through msg_control to finish
> userspace copying. This is also the requirement for more batching
> implemention on rx path.
> 
> Tests shows at most 7.56% improvment bon rx pps on top of batch
> zeroing and no obvious changes for TCP_STREAM/TCP_RR result.
> 
> Please review.
> 
> Thanks

A surprisingly large gain for such as simple change.  It would be nice
to understand better why this helps - in particular, does the optimal
batch size change if ring is bigger or smaller? But let's merge it
meanwhile.

Series:

Acked-by: Michael S. Tsirkin <mst@redhat.com>



> Changes from V4:
> - drop batch zeroing patch
> - renew the performance numbers
> - move skb pointer array out of vhost_net structure
> 
> Changes from V3:
> - add batch zeroing patch to fix the build warnings
> 
> Changes from V2:
> - rebase to net-next HEAD
> - use unconsume helpers to put skb back on releasing
> - introduce and use vhost_net internal buffer helpers
> - renew performance numbers on top of batch zeroing
> 
> Changes from V1:
> - switch to use for() in __ptr_ring_consume_batched()
> - rename peek_head_len_batched() to fetch_skbs()
> - use skb_array_consume_batched() instead of
>   skb_array_consume_batched_bh() since no consumer run in bh
> - drop the lockless peeking patch since skb_array could be resized, so
>   it's not safe to call lockless one
> 
> Jason Wang (8):
>   skb_array: introduce skb_array_unconsume
>   ptr_ring: introduce batch dequeuing
>   skb_array: introduce batch dequeuing
>   tun: export skb_array
>   tap: export skb_array
>   tun: support receiving skb through msg_control
>   tap: support receiving skb from msg_control
>   vhost_net: try batch dequing from skb array
> 
> Michael S. Tsirkin (1):
>   ptr_ring: add ptr_ring_unconsume
> 
>  drivers/net/tap.c         |  25 +++++++--
>  drivers/net/tun.c         |  31 ++++++++---
>  drivers/vhost/net.c       | 128 +++++++++++++++++++++++++++++++++++++++++++---
>  include/linux/if_tap.h    |   5 ++
>  include/linux/if_tun.h    |   5 ++
>  include/linux/ptr_ring.h  | 120 +++++++++++++++++++++++++++++++++++++++++++
>  include/linux/skb_array.h |  31 +++++++++++
>  7 files changed, 327 insertions(+), 18 deletions(-)
> 
> -- 
> 2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH net-next V5 0/9] vhost_net rx batch dequeuing Jason Wang <jasowang@redhat.com> - 2017-05-17 06:20 +0200
  [PATCH net-next V5 7/9] tun: support receiving skb through msg_control Jason Wang <jasowang@redhat.com> - 2017-05-17 06:20 +0200
  [PATCH net-next V5 1/9] ptr_ring: add ptr_ring_unconsume Jason Wang <jasowang@redhat.com> - 2017-05-17 06:20 +0200
  [PATCH net-next V5 8/9] tap: support receiving skb from msg_control Jason Wang <jasowang@redhat.com> - 2017-05-17 06:20 +0200
  [PATCH net-next V5 2/9] skb_array: introduce skb_array_unconsume Jason Wang <jasowang@redhat.com> - 2017-05-17 06:20 +0200
  Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing "Michael S. Tsirkin" <mst@redhat.com> - 2017-05-17 23:10 +0200
    Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing Jason Wang <jasowang@redhat.com> - 2017-05-19 08:30 +0200
      Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing "Michael S. Tsirkin" <mst@redhat.com> - 2017-05-19 18:40 +0200
  Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing David Miller <davem@davemloft.net> - 2017-05-18 16:10 +0200

csiph-web