[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2] vhost-vsock: report QMP event when set running
From: |
Ning Bo |
Subject: |
[Qemu-devel] [PATCH v2] vhost-vsock: report QMP event when set running |
Date: |
Mon, 5 Aug 2019 11:32:31 +0800 |
If a program in host communicates with a vsock device in guest via
'vsock://', but the device is not ready, the 'connect' syscall will
block and then timeout after 2 second default.(the timeout is defined
in kernel: #define VSOCK_DEFAULT_CONNECT_TIMEOUT (2 * HZ)).
We can avoid this case if qemu reports an event when the vsock is
ready and the program waits the event before connecting.
Report vsock running event so that the upper application can
control boot sequence.
see https://github.com/kata-containers/runtime/pull/1918
Signed-off-by: Ning Bo <address@hidden>
---
v2: fix typo
---
hw/virtio/vhost-vsock.c | 3 +++
qapi/char.json | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
index 0371493..a5920fd 100644
--- a/hw/virtio/vhost-vsock.c
+++ b/hw/virtio/vhost-vsock.c
@@ -22,6 +22,7 @@
#include "qemu/iov.h"
#include "qemu/module.h"
#include "monitor/monitor.h"
+#include "qapi/qapi-events-char.h"
enum {
VHOST_VSOCK_SAVEVM_VERSION = 0,
@@ -68,6 +69,8 @@ static int vhost_vsock_set_running(VHostVSock *vsock, int
start)
if (ret < 0) {
return -errno;
}
+ qapi_event_send_vsock_running(vsock->conf.guest_cid, start != 0);
+
return 0;
}
diff --git a/qapi/char.json b/qapi/char.json
index a6e81ac..4cfbcf2 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -570,3 +570,25 @@
{ 'event': 'VSERPORT_CHANGE',
'data': { 'id': 'str',
'open': 'bool' } }
+
+##
+# @VSOCK_RUNNING:
+#
+# Emitted when the guest changes the vsock status.
+#
+# @cid: guest context ID
+#
+# @running: true if the vsock is running
+#
+# Since: 4.2
+#
+# Example:
+#
+# <- { "event": "VSOCK_RUNNING",
+# "data": { "cid": "123456", "running": true },
+# "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
+#
+##
+{ 'event': 'VSOCK_RUNNING',
+ 'data': { 'cid': 'uint64',
+ 'running': 'bool' } }
--
2.9.5
- [Qemu-devel] [PATCH v2] vhost-vsock: report QMP event when set running,
Ning Bo <=