From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: dev@dpdk.org
Cc: huawei.xie@intel.com, Traynor Kevin <kevin.traynor@intel.com>,
marcandre.lureau@redhat.com
Subject: Re: [PATCH v3 0/6] vhost: add vhost-user client mode and reconnect ability
Date: Tue, 14 Jun 2016 20:00:59 +0800 [thread overview]
Message-ID: <20160614120059.GX10038@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <1465272308-3572-1-git-send-email-yuanhan.liu@linux.intel.com>
Applied to dpdk-next-virtio.
--yliu
On Tue, Jun 07, 2016 at 12:05:02PM +0800, Yuanhan Liu wrote:
> v3: - make the "reconnect" feature be default for client mode, as it's
> good to handle guest OS restart with less effort.
> - fix var not-initilized error pointed out by Rich
>
>
> NOTE: I created a branch at dpdk.org [0] for more convenient testing:
>
> [0]: git://dpdk.org/next/dpdk-next-virtio for-testing
>
>
> When the DPDK vhost-user application (such as OVS) restarts (due to
> crash, or update), the vhost-user connection between DPDK and QEMU
> won't be established automatically again. In another word, the virtio
> net is broken.
>
> The reason it doesn't work is that DPDK just acts as server only.
> A restart of the server needs a reconnection from the client (QEMU).
> However, reconnect from QEMU is not supported from QEMU.
>
> Adding the support of client mode and let DPDK be the client somehow
> would resolve above issue a bit easier: a restart of DPDK would naturally
> try to connect to the server (QEMU) automatically.
>
> Therefore, this patchset implements the DPDK vhost-user client mode, by
> introducing a new arg (flags) for API rte_vhost_driver_register(). And the
> client mode is enabled when RTE_VHOST_USER_CLIENT is given. Note that this
> implies an API breakage. However, since this release deals with ABI/API
> refactoring, it should not be an issue.
>
> Another interesting thing to make it work is that you not only have
> to consider that case the DPDK vhost-user app might restart, but also
> have to think that QEMU might restart as well: guest OS sometimes
> just reboots. In such case, when the server is down, the client has
> to keep reconnecting with the server until the server is back and the
> connection is established again. And that's what "reconnect" patch for.
>
> Note that current QEMU doesn't not support a second time connection
> from client, thus a restart of DPDK vhost-user will not work. This is
> because current QEMU won't be able to detect the disconnect from
> restart, thus it will not listen for later connections. Patches [1] have
> been sent, it's just not merged yet. But unlike the vhost-user mulitple
> queue case, that we have critical depends on QEMU implementation, here
> we have no such dependency, therefore, I think it's okay to make DPDK
> be ready for the "reconnect" stuff first. (note that I also mentioned
> this fact in the release doc).
>
> [1]: http://lists.nongnu.org/archive/html/qemu-devel/2016-05/msg01507.html
>
> v2: - added release doc
> - do not remove socket file for the client mode
> - create one thread ony to handle all reconnects
>
>
> Thanks.
> --yliu
>
> ---
> Yuanhan Liu (6):
> vhost: rename structs for enabling client mode
> vhost: add vhost-user client mode
> vhost: add reconnect ability
> vhost: workaround stale vring base
> examples/vhost: add client option
> vhost: add pmd client option
>
> doc/guides/rel_notes/release_16_07.rst | 21 ++
> drivers/net/vhost/rte_eth_vhost.c | 38 ++-
> examples/vhost/main.c | 12 +-
> lib/librte_vhost/rte_virtio_net.h | 12 +-
> lib/librte_vhost/vhost_cuse/vhost-net-cdev.c | 8 +-
> lib/librte_vhost/vhost_user/vhost-net-user.c | 403 ++++++++++++++++++---------
> lib/librte_vhost/vhost_user/vhost-net-user.h | 6 -
> lib/librte_vhost/virtio-net.c | 9 +
> 8 files changed, 361 insertions(+), 148 deletions(-)
>
> --
> 1.9.0
prev parent reply other threads:[~2016-06-14 11:58 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-07 6:40 [PATCH 0/6] vhost: add vhost-user client mode and reconnect ability Yuanhan Liu
2016-05-07 6:40 ` [PATCH 1/6] vhost: rename structs for enabling client mode Yuanhan Liu
2016-05-07 6:40 ` [PATCH 2/6] vhost: add vhost-user " Yuanhan Liu
2016-05-09 10:33 ` Victor Kaplansky
2016-05-09 20:33 ` Yuanhan Liu
2016-05-09 20:30 ` Michael S. Tsirkin
2016-05-07 6:40 ` [PATCH 3/6] vhost: add reconnect ability Yuanhan Liu
2016-05-09 16:47 ` Xie, Huawei
2016-05-09 18:12 ` Yuanhan Liu
2016-05-10 7:24 ` Xie, Huawei
2016-05-10 7:54 ` Michael S. Tsirkin
2016-05-10 8:07 ` Xie, Huawei
2016-05-10 8:42 ` Michael S. Tsirkin
2016-05-10 9:00 ` Xie, Huawei
2016-05-10 9:17 ` Michael S. Tsirkin
2016-05-10 17:17 ` Loftus, Ciara
2016-05-11 21:46 ` Michael S. Tsirkin
2016-05-07 6:40 ` [PATCH 4/6] vhost: workaround stale vring base Yuanhan Liu
2016-05-09 10:45 ` Victor Kaplansky
2016-05-09 13:39 ` Xie, Huawei
2016-05-09 18:23 ` Yuanhan Liu
2016-05-09 12:19 ` Michael S. Tsirkin
2016-05-09 16:25 ` Xie, Huawei
2016-05-09 18:22 ` Yuanhan Liu
2016-06-13 20:47 ` Michael S. Tsirkin
2016-05-10 8:21 ` Xie, Huawei
2016-05-07 6:40 ` [PATCH 5/6] examples/vhost: add client and reconnect option Yuanhan Liu
2016-05-09 10:47 ` Victor Kaplansky
2016-05-07 6:40 ` [PATCH 6/6] vhost: add pmd " Yuanhan Liu
2016-05-09 10:54 ` Victor Kaplansky
2016-05-09 18:26 ` Yuanhan Liu
2016-05-10 3:23 ` [PATCH 0/6] vhost: add vhost-user client mode and reconnect ability Xu, Qian Q
2016-05-10 17:41 ` Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 " Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 1/6] vhost: rename structs for enabling client mode Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 2/6] vhost: add vhost-user " Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 3/6] vhost: add reconnect ability Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 4/6] vhost: workaround stale vring base Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 5/6] examples/vhost: add client and reconnect option Yuanhan Liu
2016-05-13 6:16 ` [PATCH v2 6/6] vhost: add pmd " Yuanhan Liu
2016-05-25 17:45 ` Rich Lane
2016-05-26 8:01 ` Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 0/6] vhost: add vhost-user client mode and reconnect ability Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 1/6] vhost: rename structs for enabling client mode Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 2/6] vhost: add vhost-user " Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 3/6] vhost: add reconnect ability Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 4/6] vhost: workaround stale vring base Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 5/6] examples/vhost: add client option Yuanhan Liu
2016-06-07 4:05 ` [PATCH v3 6/6] vhost: add pmd " Yuanhan Liu
2016-06-14 12:00 ` Yuanhan Liu [this message]
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=20160614120059.GX10038@yliu-dev.sh.intel.com \
--to=yuanhan.liu@linux.intel.com \
--cc=dev@dpdk.org \
--cc=huawei.xie@intel.com \
--cc=kevin.traynor@intel.com \
--cc=marcandre.lureau@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 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.