From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: dev@dpdk.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>, marcel@redhat.com
Subject: [dpdk-dev] [PATCH v7 0/8] vhost-user multiple queues enabling
Date: Wed, 21 Oct 2015 11:48:06 +0800 [thread overview]
Message-ID: <1445399294-18826-1-git-send-email-yuanhan.liu@linux.intel.com> (raw)
This patch set enables vhost-user multiple queues.
v7:
- Removed vhost-user mq examples in this patch set
Because the example leverages the hardware VMDq feature to
demonstrate the mq feature, which introduces too much
limitation, yet it's turned out to be not elegant.
- Commit log fixes
- Dropped the patch to fix RESET_OWNER handling, as I found
Jerome's solution works as well, and it makes more sense to
me:
http://dpdk.org/dev/patchwork/project/dpdk/list/?submitter=354
Overview
========
It depends on some QEMU patches that has already been merged to upstream.
Those qemu patches introduce some new vhost-user messages, for vhost-user
mq enabling negotiation. Here is the main negotiation steps (Qemu
as master, and DPDK vhost-user as slave):
- Master queries features by VHOST_USER_GET_FEATURES from slave
- Check if VHOST_USER_F_PROTOCOL_FEATURES exist. If not, mq is not
supported. (check patch 1 for why VHOST_USER_F_PROTOCOL_FEATURES
is introduced)
- Master then sends another command, VHOST_USER_GET_QUEUE_NUM, for
querying how many queues the slave supports.
Master will compare the result with the requested queue number.
Qemu exits if the former is smaller.
- Master then tries to initiate all queue pairs by sending some vhost
user commands, including VHOST_USER_SET_VRING_CALL, which will
trigger the slave to do related vring setup, such as vring allocation.
Till now, all necessary initiation and negotiation are done. And master
could send another message, VHOST_USER_SET_VRING_ENABLE, to enable/disable
a specific queue dynamically later.
Patchset
========
Patch 1-5 are all prepare works for enabling mq; they are all atomic
changes, with "do not breaking anything" beared in mind while making
them.
Patch 6 actually enables mq feature, by setting two key feature flags.
Patch 7 handles VHOST_USER_SET_VRING_ENABLE message, which is for enabling
disabling a specific virt queue pair, and there is only one queue pair is
enabled by default.
Test with OVS
=============
Marcel created a simple yet quite clear test guide with OVS at:
http://wiki.qemu.org/Features/vhost-user-ovs-dpdk
Cc: Jerome Jutteau <jerome.jutteau@outscale.com>
---
Changchun Ouyang (3):
vhost: rxtx: use queue id instead of constant ring index
virtio: fix deadloop due to reading virtio_net_config incorrectly
vhost: add VHOST_USER_SET_VRING_ENABLE message
Yuanhan Liu (5):
vhost-user: add protocol features support
vhost-user: add VHOST_USER_GET_QUEUE_NUM message
vhost: vring queue setup for multiple queue support
vhost-user: enable vhost-user multiple queue
doc: update release note for vhost-user mq support
doc/guides/rel_notes/release_2_2.rst | 4 +
drivers/net/virtio/virtio_ethdev.c | 16 ++-
lib/librte_vhost/rte_virtio_net.h | 13 ++-
lib/librte_vhost/vhost_rxtx.c | 56 ++++++---
lib/librte_vhost/vhost_user/vhost-net-user.c | 25 ++++-
lib/librte_vhost/vhost_user/vhost-net-user.h | 4 +
lib/librte_vhost/vhost_user/virtio-net-user.c | 83 ++++++++++----
lib/librte_vhost/vhost_user/virtio-net-user.h | 10 ++
lib/librte_vhost/virtio-net.c | 156 ++++++++++++++++----------
9 files changed, 269 insertions(+), 98 deletions(-)
--
1.9.0
next reply other threads:[~2015-10-21 3:48 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-21 3:48 Yuanhan Liu [this message]
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 1/8] vhost-user: add protocol features support Yuanhan Liu
2015-10-22 9:52 ` Xie, Huawei
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 2/8] vhost-user: add VHOST_USER_GET_QUEUE_NUM message Yuanhan Liu
2015-10-22 9:38 ` Xie, Huawei
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 3/8] vhost: vring queue setup for multiple queue support Yuanhan Liu
2015-10-21 4:45 ` Stephen Hemminger
2015-10-21 6:52 ` Yuanhan Liu
2015-10-22 9:49 ` Xie, Huawei
2015-10-22 11:30 ` Yuanhan Liu
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 4/8] vhost: rxtx: use queue id instead of constant ring index Yuanhan Liu
2015-10-21 4:43 ` Stephen Hemminger
2015-10-21 6:54 ` Yuanhan Liu
2015-10-21 7:16 ` Xie, Huawei
2015-10-21 9:38 ` Ananyev, Konstantin
2015-10-21 15:47 ` Stephen Hemminger
2015-10-21 15:52 ` Thomas Monjalon
2015-10-21 15:57 ` Bruce Richardson
2015-10-21 15:55 ` Bruce Richardson
2015-10-21 16:29 ` Ananyev, Konstantin
2015-10-21 10:31 ` Michael S. Tsirkin
2015-10-21 12:48 ` Yuanhan Liu
2015-10-21 14:26 ` Michael S. Tsirkin
2015-10-21 14:59 ` Yuanhan Liu
2015-10-22 9:49 ` Yuanhan Liu
2015-10-22 11:32 ` Michael S. Tsirkin
2015-10-22 14:07 ` Yuanhan Liu
2015-10-22 14:19 ` Michael S. Tsirkin
2015-10-23 8:02 ` Yuanhan Liu
2015-10-24 2:34 ` Flavio Leitner
2015-10-24 17:47 ` Michael S. Tsirkin
2015-10-28 20:30 ` Flavio Leitner
2015-10-28 21:12 ` Michael S. Tsirkin
2015-11-16 22:20 ` Flavio Leitner
2015-11-17 8:23 ` Michael S. Tsirkin
2015-11-17 9:24 ` Jason Wang
2015-11-17 22:49 ` Flavio Leitner
2015-10-22 7:26 ` Xie, Huawei
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 5/8] virtio: fix deadloop due to reading virtio_net_config incorrectly Yuanhan Liu
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 6/8] vhost-user: enable vhost-user multiple queue Yuanhan Liu
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 7/8] vhost: add VHOST_USER_SET_VRING_ENABLE message Yuanhan Liu
2015-10-21 3:48 ` [dpdk-dev] [PATCH v7 8/8] doc: update release note for vhost-user mq support Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 0/8] vhost-user multiple queues enabling Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 1/8] vhost-user: add protocol features support Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 2/8] vhost-user: add VHOST_USER_GET_QUEUE_NUM message Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 3/8] vhost: vring queue setup for multiple queue support Yuanhan Liu
2015-10-26 5:24 ` Tetsuya Mukawa
2015-10-26 5:42 ` Yuanhan Liu
2015-10-27 6:20 ` Tetsuya Mukawa
2015-10-27 9:17 ` Michael S. Tsirkin
2015-10-27 9:30 ` Yuanhan Liu
2015-10-27 9:42 ` Michael S. Tsirkin
2015-10-27 9:51 ` Thomas Monjalon
2015-10-27 9:55 ` Michael S. Tsirkin
2015-10-27 10:41 ` Xie, Huawei
2015-10-27 9:53 ` Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 4/8] vhost: rxtx: use queue id instead of constant ring index Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 5/8] virtio: fix deadloop due to reading virtio_net_config incorrectly Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 6/8] vhost: add VHOST_USER_SET_VRING_ENABLE message Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 7/8] vhost-user: enable vhost-user multiple queue Yuanhan Liu
2015-10-22 12:35 ` [dpdk-dev] [PATCH v8 8/8] doc: update release note for vhost-user mq support Yuanhan Liu
2015-10-26 20:22 ` Thomas Monjalon
2015-10-27 9:38 ` Yuanhan Liu
2015-10-26 1:36 ` [dpdk-dev] [PATCH v8 0/8] vhost-user multiple queues enabling Xie, Huawei
2015-10-26 3:09 ` Yuanhan Liu
2015-10-26 20:26 ` Thomas Monjalon
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=1445399294-18826-1-git-send-email-yuanhan.liu@linux.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=dev@dpdk.org \
--cc=marcel@redhat.com \
--cc=mst@redhat.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).