From: Marc-André Lureau <marcandre.lur...@redhat.com> Hi,
In a previous series "RFCv2: vhost-user: shutdown and reconnection", I proposed to add a new slave request to handle graceful shutdown, for both qemu configuration, server or client, while keeping the guest running with link down status. However, for the simple case where qemu is configured as server, and the backend processes packets in order and disconnects, it is possible for the backend to recover after reconnection by discarding the qemu SET_VRING_BASE value and resuming from the used->index instead. This simplifies the reconnection support in this particular situation (it would make sense to have the backend declare this behaviour with an extra flag) The guest won't be notified of link status change and queues may not be processed in a timely manner, also qemu may assert if some vhost-user commands are happening while the backend is disconnected. So the reconnection must happen "quickly enough" here. In order to keep the series relatively small, these further problems will be addressed later. These series demonstrates a simple reconnect support for vubr (configured as client and qemu as server), includes some nice to have fixes and a simple test. rfcv3->v1: - rebased - added add a dummy vhost_net_get_acked_features() implementation for !VHOST_NET - changed vubr->tests/vhost-user-bridge in summary - made the test silent by using a subprocess - added s-o-b/tested-by/r-b tags Marc-André Lureau (8): tests/vhost-user-bridge: add client mode tests/vhost-user-bridge: workaround stale vring base vhost-user: disconnect on start failure vhost-net: do not crash if backend is not present vhost-net: save & restore vhost-user acked features vhost-net: save & restore vring enable state tests: append i386 tests test: start vhost-user reconnect test Tetsuya Mukawa (2): vhost-user: add ability to know vhost-user backend disconnection qemu-char: add qemu_chr_disconnect to close a fd accepted by listen fd hw/net/vhost_net.c | 45 ++++++++++++++- include/net/net.h | 1 + include/net/vhost-user.h | 1 + include/net/vhost_net.h | 3 + include/sysemu/char.h | 7 +++ net/vhost-user.c | 32 ++++++++++- qemu-char.c | 8 +++ tests/Makefile | 2 +- tests/vhost-user-bridge.c | 45 +++++++++++---- tests/vhost-user-test.c | 136 ++++++++++++++++++++++++++++++++++++++++------ 10 files changed, 247 insertions(+), 33 deletions(-) -- 2.7.4