On Mon, Jun 15, 2015 at 03:12:28PM +0100, Stefan Hajnoczi wrote: > On Thu, Jun 11, 2015 at 10:56:06AM +0900, Tetsuya Mukawa wrote: > > On 2015/05/29 13:42, Tetsuya Mukawa wrote: > > > Hi guys, > > > > > > Here are patches to add feature to start QEMU without vhost-user backend. > > > Currently, if we want to use vhost-user backend, the backend must start > > > before > > > QEMU. Also, if QEMU or the backend is closed unexpectedly, there is no > > > way to > > > recover without restarting both applications. Practically, it's not > > > useful. > > > > > > This patch series adds following features. > > > - QEMU can start before the backend. > > > - QEMU or the backend can restart anytime. > > > connectivity will be recovered automatically, when app starts again. > > > (if QEMU is server, QEMU just wait reconnection) > > > while lost connection, link status of virtio-net device is down, > > > so virtio-net driver on the guest can know it > > > > > > To work like above, the patch introduces flags to specify features > > > vhost-user > > > backend will support. > > > > > > Here are examples. > > > ('backend_mrg_rxbuf' is an one of new flags. To know all, check the last > > > patch) > > > > > > * QEMU is configured as vhost-user client. > > > -chardev socket,id=chr0,path=/tmp/sock,reconnect=3 \ > > > -netdev vhost-user,id=net0,chardev=chr0,vhostforce,backend_mrg_rxbuf > > > \ > > > -device virtio-net-pci,netdev=net0 \ > > > > > > * QEMU is configured as vhost-user server. > > > -chardev socket,id=chr0,path=/tmp/sock,server,nowait \ > > > -netdev vhost-user,id=net0,chardev=chr0,vhostforce,backend_mrg_rxbuf > > > \ > > > -device virtio-net-pci,netdev=net0 \ > > > > > > When virtio-net device is configured by virtio-net driver, QEMU should > > > know > > > vhost-user backend features. But if QEMU starts without the backend, QEMU > > > cannot > > > know it. So above the feature values specified by user will be used as > > > features > > > the backend will support. > > > > > > When connection between QEMU and the backend is established, QEMU checkes > > > feature > > > values of the backend to make sure the expected features are provided. > > > If it doesn't, the connection will be closed by QEMU. > > > > > > Regards, > > > Tetsuya > > > > > > ---------- > > > Changes > > > ---------- > > > - Changes from RFC patch > > > The last patch of this series was changed like below. > > > - Rebase to latest master. > > > - Remove needless has_backend_feature variable. > > > - Change user interface to be able to specify each feature by name. > > > - Add (Since 2.4) to schema file. > > > - Fix commit title and body. > > > > > > > > > Tetsuya Mukawa (4): > > > vhost-user: Add ability to know vhost-user backend disconnection > > > vhost-user: Shutdown vhost-user connection when wrong messages are > > > passed > > > vhost-user: Enable 'nowait' and 'reconnect' option > > > vhost-user: Add new option to specify vhost-user backend features > > > > > > hw/net/vhost_net.c | 6 ++- > > > hw/net/virtio-net.c | 13 +++++ > > > hw/scsi/vhost-scsi.c | 2 +- > > > hw/virtio/vhost-user.c | 24 ++++++--- > > > hw/virtio/vhost.c | 7 ++- > > > include/hw/virtio/vhost.h | 3 +- > > > include/hw/virtio/virtio-net.h | 1 + > > > include/net/net.h | 3 ++ > > > include/net/vhost_net.h | 1 + > > > include/sysemu/char.h | 7 +++ > > > net/net.c | 9 ++++ > > > net/tap.c | 1 + > > > net/vhost-user.c | 69 ++++++++++++++++++++++++- > > > qapi-schema.json | 114 > > > +++++++++++++++++++++++++++++++++++------ > > > qemu-char.c | 15 ++++++ > > > qemu-options.hx | 10 ++++ > > > 16 files changed, 256 insertions(+), 29 deletions(-) > > > > > > > Ping. > > > > Could someone please review this patches? > > http://patchwork.ozlabs.org/project/qemu-devel/list/?submitter=66139 > > Nikolay, Jason, or Michael: > Can one of you please step up to become maintainer of net/vhost-user.c. > > I don't follow vhost-user development much and can't give good review > feedback about the vhost-user specific aspects. > > Please send a patch that adds you to the MAINTAINERS file for > net/vhost-user.c. Then either include merged patches in Michael's pull > requests or ask me (and in the future, Jason) to include them in net > pull requests. > > Stefan
Done.