All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: Marvin Liu <yong.liu@intel.com>, tiwei.bie@intel.com
Cc: zhihong.wang@intel.com, dev@dpdk.org
Subject: Re: [PATCH v5 0/9] support in-order feature
Date: Mon, 2 Jul 2018 10:33:28 +0200	[thread overview]
Message-ID: <6dea99a3-4b26-be52-e524-94de3f4fda64@redhat.com> (raw)
In-Reply-To: <20180702135642.52577-1-yong.liu@intel.com>



On 07/02/2018 03:56 PM, Marvin Liu wrote:
> In latest virtio-spec, new feature bit VIRTIO_F_IN_ORDER was introduced.
> When this feature has been negotiated, virtio driver will use
> descriptors in ring order: starting from offset 0 in the table, and
> wrapping around at the end of the table. Vhost devices will always use
> descriptors in the same order in which they have been made available.
> This can reduce virtio accesses to used ring.
> 
> Based on updated virtio-spec, this series realized IN_ORDER prototype
> in virtio driver. Due to new [RT]x path added into selection, also add
> two new parameters mrg_rx and in_order into virtio-user vdev parameters
> list. This will allow user to configure feature bits thus can impact
> [RT]x path selection.
> 
> Performance of virtio user with IN_ORDER feature:
> 
>      Platform: Purely
>      CPU: Intel(R) Xeon(R) Platinum 8160 CPU @ 2.10GHz
>      DPDK baseline: 18.05
>      Setup: testpmd with vhost vdev + testpmd with virtio vdev
> 
>      +--------------+----------+----------+---------+
>      |Vhost->Virtio |1 Queue   |2 Queues  |4 Queues |
>      +--------------+----------+----------+---------+
>      |Inorder       |12.0Mpps  |24.2Mpps  |26.0Mpps |
>      |Normal        |12.1Mpps  |18.5Mpps  |18.9Mpps |
>      +--------------+----------+----------+---------+
>      
>      +--------------+----------+----------------+---------+
>      |Virtio->Vhost |1 Queue   |2 Queues        |4 Queues |
>      +--------------+----------+----------------+---------+
>      |Inorder       |13.8Mpps  |10.7 ~ 15.2Mpps |11.5Mpps |
>      |Normal        |13.3Mpps  |9.8 ~ 14Mpps    |10.5Mpps |
>      +--------------+----------+----------------+---------+
>      
>      +---------+----------+----------------+----------------+
>      |Loopback |1 Queue   |2 Queues        |4 Queues        |
>      +---------+----------+----------------+----------------+
>      |Inorder  |7.4Mpps   |9.1 ~ 11.6Mpps  |10.5 ~ 11.3Mpps |
>      +---------+----------+----------------+----------------+
>      |Normal   |7.5Mpps   |7.7 ~ 9.0Mpps   |7.6 ~ 7.8Mpps   |
>      +---------+----------+----------------+----------------+
> 
> v5:
> - disable simple Tx when in-order negotiated
> - doc update
> 
> v4:
> - disable simple [RT]x function for ARM
> - squash doc update into relevant patches
> - fix git-check-log and checkpatch errors
> 
> v3:
> - refine [RT]x function selection logic
> - fix in-order mergeable packets index error
> - combine unsupport mask patch
> - doc virtio in-order update
> - fix checkpatch error
> 
> v2:
> - merge to latest dpdk-net-virtio
> - not use in_direct for normal xmit packets
> - update available ring for each descriptor
> - clean up IN_ORDER xmit function
> - unmask feature bits when disabled in_order or mgr_rxbuf
> - extract common part between IN_ORDER and normal functions
> - update performance result
> 
> Marvin Liu (9):
>    vhost: advertise support in-order feature
>    net/virtio: add in-order feature bit definition
>    net/virtio-user: add unsupported features mask
>    net/virtio-user: add mrg-rxbuf and in-order vdev parameters
>    net/virtio: free in-order descriptors before device start
>    net/virtio: extract common part for in-order functions
>    net/virtio: support in-order Rx and Tx
>    net/virtio: add in-order Rx/Tx into selection
>    net/virtio: advertise support in-order feature
> 
>   doc/guides/nics/virtio.rst                    |  23 +-
>   drivers/net/virtio/virtio_ethdev.c            |  32 +-
>   drivers/net/virtio/virtio_ethdev.h            |   7 +
>   drivers/net/virtio/virtio_pci.h               |   8 +
>   drivers/net/virtio/virtio_rxtx.c              | 639 ++++++++++++++++--
>   .../net/virtio/virtio_user/virtio_user_dev.c  |  30 +-
>   .../net/virtio/virtio_user/virtio_user_dev.h  |   4 +-
>   drivers/net/virtio/virtio_user_ethdev.c       |  47 +-
>   drivers/net/virtio/virtqueue.c                |   8 +
>   drivers/net/virtio/virtqueue.h                |   2 +
>   lib/librte_vhost/socket.c                     |   6 +
>   lib/librte_vhost/vhost.h                      |  10 +-
>   12 files changed, 736 insertions(+), 80 deletions(-)
> 

Applied to dpdk-next-virtio/master.

Thanks,
Maxime

  reply	other threads:[~2018-07-02  8:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-02 13:56 [PATCH v5 0/9] support in-order feature Marvin Liu
2018-07-02  8:33 ` Maxime Coquelin [this message]
2018-07-02 13:56 ` [PATCH v5 1/9] vhost: advertise " Marvin Liu
2018-07-02 13:56 ` [PATCH v5 2/9] net/virtio: add in-order feature bit definition Marvin Liu
2018-07-02 13:56 ` [PATCH v5 3/9] net/virtio-user: add unsupported features mask Marvin Liu
2018-07-02 13:56 ` [PATCH v5 4/9] net/virtio-user: add mrg-rxbuf and in-order vdev parameters Marvin Liu
2018-07-02 13:56 ` [PATCH v5 5/9] net/virtio: free in-order descriptors before device start Marvin Liu
2018-07-02 13:56 ` [PATCH v5 6/9] net/virtio: extract common part for in-order functions Marvin Liu
2018-07-02 13:56 ` [PATCH v5 7/9] net/virtio: support in-order Rx and Tx Marvin Liu
2018-07-02 16:41   ` Ferruh Yigit
2018-07-02 16:52     ` Ferruh Yigit
2018-07-02 16:53       ` Maxime Coquelin
2018-07-02 16:57         ` Ferruh Yigit
2018-07-03  1:36           ` Liu, Yong
2018-07-03 10:36             ` Ferruh Yigit
2018-07-02 13:56 ` [PATCH v5 8/9] net/virtio: add in-order Rx/Tx into selection Marvin Liu
2018-07-02 11:24   ` Maxime Coquelin
2018-07-02 12:41     ` Maxime Coquelin
2018-07-02 15:18       ` Maxime Coquelin
2018-07-03  1:40         ` Liu, Yong
2018-07-02 13:56 ` [PATCH v5 9/9] net/virtio: advertise support in-order feature Marvin Liu

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=6dea99a3-4b26-be52-e524-94de3f4fda64@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=dev@dpdk.org \
    --cc=tiwei.bie@intel.com \
    --cc=yong.liu@intel.com \
    --cc=zhihong.wang@intel.com \
    /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.