From: Marvin Liu <yong.liu@intel.com>
To: maxime.coquelin@redhat.com, tiwei.bie@intel.com
Cc: zhihong.wang@intel.com, dev@dpdk.org, Marvin Liu <yong.liu@intel.com>
Subject: [dpdk-dev] [PATCH v2 0/8] support VIRTIO_F_IN_ORDER feature
Date: Mon, 25 Jun 2018 23:17:02 +0800 [thread overview]
Message-ID: <20180625151710.29437-1-yong.liu@intel.com> (raw)
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 |
+---------+----------+----------------+----------------+
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 (8):
vhost: announce VIRTIO_F_IN_ORDER support
net/virtio: add VIRTIO_F_IN_ORDER definition
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: annouce VIRTIO_F_IN_ORDER support
drivers/net/virtio/virtio_ethdev.c | 31 +-
drivers/net/virtio/virtio_ethdev.h | 7 +
drivers/net/virtio/virtio_pci.h | 8 +
drivers/net/virtio/virtio_rxtx.c | 635 ++++++++++++++++--
.../net/virtio/virtio_user/virtio_user_dev.c | 14 +-
.../net/virtio/virtio_user/virtio_user_dev.h | 3 +-
drivers/net/virtio/virtio_user_ethdev.c | 33 +-
drivers/net/virtio/virtqueue.c | 8 +
drivers/net/virtio/virtqueue.h | 2 +
lib/librte_vhost/socket.c | 6 +
lib/librte_vhost/vhost.h | 10 +-
11 files changed, 688 insertions(+), 69 deletions(-)
--
2.17.0
next reply other threads:[~2018-06-25 7:31 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-25 15:17 Marvin Liu [this message]
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 1/8] vhost: announce VIRTIO_F_IN_ORDER support Marvin Liu
2018-06-26 7:54 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 2/8] net/virtio: add VIRTIO_F_IN_ORDER definition Marvin Liu
2018-06-26 7:58 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 3/8] net/virtio-user: add mrg_rxbuf and in_order vdev parameters Marvin Liu
2018-06-27 6:53 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 4/8] net/virtio: free IN_ORDER descriptors before device start Marvin Liu
2018-06-27 6:58 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 5/8] net/virtio: extract common part for IN_ORDER functions Marvin Liu
2018-06-27 6:59 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 6/8] net/virtio: support IN_ORDER Rx and Tx Marvin Liu
2018-06-27 8:18 ` Maxime Coquelin
2018-06-27 14:27 ` Liu, Yong
2018-06-27 14:32 ` Maxime Coquelin
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 7/8] net/virtio: add IN_ORDER Rx/Tx into selection Marvin Liu
2018-06-27 8:19 ` Maxime Coquelin
2018-06-28 14:11 ` Liu, Yong
2018-06-25 15:17 ` [dpdk-dev] [PATCH v2 8/8] net/virtio: annouce VIRTIO_F_IN_ORDER support Marvin Liu
2018-06-27 8:20 ` Maxime Coquelin
2018-06-26 7:56 ` [dpdk-dev] [PATCH v2 0/8] support VIRTIO_F_IN_ORDER feature Maxime Coquelin
2018-06-26 8:01 ` Liu, Yong
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=20180625151710.29437-1-yong.liu@intel.com \
--to=yong.liu@intel.com \
--cc=dev@dpdk.org \
--cc=maxime.coquelin@redhat.com \
--cc=tiwei.bie@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).