Hi Marc, I was also thinking we should do it in this way first. That simplfies things. So, feel free to add:
Tested-by: Yuanhan Liu <yuanhan....@linux.intel.com> Reviewed-by: Yuanhan Liu <yuanhan....@linux.intel.com> (well, I didn't review the test case carefully). Thanks. --yliu On Tue, May 10, 2016 at 06:03:50PM +0200, marcandre.lur...@redhat.com wrote: > 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. > > Marc-André Lureau (8): > vubr: add client mode > vubr: 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 | 39 ++++++++++++++- > 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 | 123 > +++++++++++++++++++++++++++++++++++++++------- > 10 files changed, 228 insertions(+), 33 deletions(-) > > -- > 2.7.4