[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 0/5] Add feature to start QEMU without vhost-user
From: |
Tetsuya Mukawa |
Subject: |
[Qemu-devel] [PATCH v2 0/5] Add feature to start QEMU without vhost-user backend |
Date: |
Mon, 22 Jun 2015 12:50:43 +0900 |
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_features' is the new flags. Each bit of the flag represents
VIRTIO_NET_F_* in linux/virtio_net.h)
* 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-features=0x68000 \
-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-features=0x68000 \
-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
----------
- v2 changes from v1 patch
- Rebase to latest master.
- Change user interface to be able to specify each feature by UINT64.
- Replace backend_* to backend-* in qapi schema.
- Use close(2) interface for opended socket instead of using shutdown(2)
interface.
- Split 2nd patch of v1 into 2nd and 3rd patch of v2.
- Fix commit title and body.
- Add comment, and fix indent.
- Use {} even for single statement if bodies.
- Use PRIx64 instead of %lx.
- v1 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 (5):
vhost-user: Add ability to know vhost-user backend disconnection
qemu-char: Add qemu_chr_disconnect to close a fd accepted by listen fd
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 supports
hw/net/vhost_net.c | 6 +++++-
hw/net/virtio-net.c | 15 +++++++++++++++
hw/scsi/vhost-scsi.c | 2 +-
hw/virtio/vhost-user.c | 24 ++++++++++++++++-------
hw/virtio/vhost.c | 3 ++-
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 | 43 ++++++++++++++++++++++++++++++++++++++++--
qapi-schema.json | 12 ++++++++++--
qemu-char.c | 8 ++++++++
qemu-options.hx | 3 ++-
16 files changed, 125 insertions(+), 16 deletions(-)
--
2.1.4
- [Qemu-devel] [PATCH v2 0/5] Add feature to start QEMU without vhost-user backend,
Tetsuya Mukawa <=
- [Qemu-devel] [PATCH v2 1/5] vhost-user: Add ability to know vhost-user backend disconnection, Tetsuya Mukawa, 2015/06/21
- [Qemu-devel] [PATCH v2 3/5] vhost-user: Shutdown vhost-user connection when wrong messages are passed, Tetsuya Mukawa, 2015/06/21
- [Qemu-devel] [PATCH v2 2/5] qemu-char: Add qemu_chr_disconnect to close a fd accepted by listen fd, Tetsuya Mukawa, 2015/06/21
- [Qemu-devel] [PATCH v2 4/5] vhost-user: Enable 'nowait' and 'reconnect' option, Tetsuya Mukawa, 2015/06/21
- [Qemu-devel] [PATCH v2 5/5] vhost-user: Add new option to specify vhost-user backend supports, Tetsuya Mukawa, 2015/06/21
- Re: [Qemu-devel] [PATCH v2 0/5] Add feature to start QEMU without vhost-user backend, Michael S. Tsirkin, 2015/06/22