All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing
Date: Wed, 17 May 2017 23:59:57 +0300	[thread overview]
Message-ID: <20170517235738-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <1494994485-12994-1-git-send-email-jasowang@redhat.com>

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

  parent reply	other threads:[~2017-05-17 21:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-17  4:14 [PATCH net-next V5 0/9] vhost_net rx batch dequeuing Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 1/9] ptr_ring: add ptr_ring_unconsume Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 2/9] skb_array: introduce skb_array_unconsume Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 3/9] ptr_ring: introduce batch dequeuing Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 4/9] skb_array: " Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 5/9] tun: export skb_array Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 6/9] tap: " Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 7/9] tun: support receiving skb through msg_control Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 8/9] tap: support receiving skb from msg_control Jason Wang
2017-05-17  4:14 ` [PATCH net-next V5 9/9] vhost_net: try batch dequing from skb array Jason Wang
2017-05-17 20:59 ` Michael S. Tsirkin [this message]
2017-05-19  6:27   ` [PATCH net-next V5 0/9] vhost_net rx batch dequeuing Jason Wang
2017-05-19 16:36     ` Michael S. Tsirkin
2017-05-18 14:08 ` David Miller

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=20170517235738-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --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.