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 <ning....@zte.com.cn> --- 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..7b746e3 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: v4.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