[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/24] vhost-user reconnect fixes
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 00/24] vhost-user reconnect fixes |
Date: |
Thu, 23 Jun 2016 07:32:22 +0300 |
On Tue, Jun 21, 2016 at 12:02:28PM +0200, address@hidden wrote:
> From: Marc-André Lureau <address@hidden>
>
> Hi,
>
> Since 'vhost-user: simple reconnection support' was merged, it is
> possible to disconnect and reconnect a vhost-user backend. However,
> many code paths in qemu may trigger assert() when the backend is
> disconnected.
>
> Some assert() could simply be replaced by error_report() or silently
> fail since they are recoverable cases. Some missing error checks can
> also help prevent later issues. In many cases, the code assumes
> get_vhost_net() will be non-NULL after a succesful connection, so I
> changed it to stay after a disconnect until the new connection comes
> (as suggested by Michael). There are also code paths that are wrong,
> see "don't assume opaque is a fd" patch for an example.
Can this be rarranged, first patches fixing the code paths that are wrong,
then patches handling the asserts etc?
> Since there is feature checks on reconnection, qemu should wait for
> the initial connection feature negotiation to complete. The test added
> demonstrates this.
>
> For convenience, the series is also available on:
> https://github.com/elmarco/qemu, branch vhost-user-reconnect
>
> Marc-André Lureau (24):
> misc: indentation
> vhost-user: minor simplification
> qemu-char: check socket is actually connected
> vhost-user: check qemu_chr_fe_set_msgfds() return value
> vhost: change some assert() for error_report() or silent fail
> vhost-user: check vhost_user_write() return value
> vhost: use error_report() instead of fprintf(stderr,...)
> vhost-user: return a read error
> vhost: make vhost_log_put() idempotent
> vhost: call vhost_log_put() on cleanup
> vhost: add vhost device only after all success
> vhost: make vhost_dev_cleanup() idempotent
> vhost-net: always call vhost_dev_cleanup() on failure
> vhost: don't assume opaque is a fd, use backend cleanup
> vhost: fix calling vhost_dev_cleanup() after vhost_dev_init()
> vhost-user: keep vhost_net after a disconnection
> Revert "vhost-net: do not crash if backend is not present"
> get_vhost_net() should be != null after vhost_user_init
> vhost-net: success if backend has no ops->vhost_migration_done
> vhost: add assert() to check runtime behaviour
> char: add chr_wait_connected callback
> char: add and use tcp_chr_wait_connected
> vhost-user: wait until link is up
> tests: add /vhost-user/connect-fail test
>
> hw/net/vhost_net.c | 19 +++-----
> hw/virtio/vhost-user.c | 54 +++++++++++++++--------
> hw/virtio/vhost.c | 114
> +++++++++++++++++++++++++++---------------------
> include/sysemu/char.h | 8 ++++
> net/tap.c | 1 +
> net/vhost-user.c | 36 ++++++++-------
> qemu-char.c | 82 ++++++++++++++++++++++++----------
> tests/vhost-user-test.c | 37 ++++++++++++++++
> 8 files changed, 233 insertions(+), 118 deletions(-)
>
> --
> 2.7.4
- Re: [Qemu-devel] [PATCH 23/24] vhost-user: wait until link is up, (continued)
[Qemu-devel] [PATCH 19/24] vhost-net: success if backend has no ops->vhost_migration_done, marcandre . lureau, 2016/06/21
[Qemu-devel] [PATCH 24/24] tests: add /vhost-user/connect-fail test, marcandre . lureau, 2016/06/21
[Qemu-devel] [PATCH 20/24] vhost: add assert() to check runtime behaviour, marcandre . lureau, 2016/06/21
Re: [Qemu-devel] [PATCH 00/24] vhost-user reconnect fixes, Michael S. Tsirkin, 2016/06/23
Re: [Qemu-devel] [PATCH 00/24] vhost-user reconnect fixes,
Michael S. Tsirkin <=