Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git
br.libxl-ev-qmp-v
Changes in v7:
plenty, with new patches
Changes in v6:
Implementation of libxl__ev_qmp_* functions have been squashed to a single
patch. And with that, a lot of changes in order to make it simpler to read
the implementation, have better error reporting and a few bug fix.
Checkout more detail changelog in the notes of each patch, as there is
many.
Changes in v5:
Plenty of patch have been applied.
Other changes mostly are coding style and other typos.
Some bug fixes.
Details can be found in patch notes.
I have left aside the change to cdrom_insert until I can found what to do
with the userdata lock.
In order for libxl to be able to manage QEMU while it is restricted, a few
changes are needed. We need a new way to get a startup notification from QEMU
as xenstore may not be accessible when QEMU is ready. We also need to a
different way to have QEMU save it's state and to insert cdrom as a restricted
QEMU doesn't have access to the file system.
For both, we can use QMP, we can use it to query QEMU's status, and we can use
it to send a file descriptor through which QEMU can save its state, or it can
be a cdrom.
We take this opportunity to rewrite the QMP client, and this time been
asynchronous, the result is libxl__ev_qmp_*.
The plat de résistance in this patch series start with patch
"libxl: Design of an async API to issue QMP commands to QEMU"
which implement libxl__ev_qmp_* functions to turn the QMP client into
asynchronous mode.
This comes with changes that uses the new interface.
* "libxl: QEMU startup sync based on QMP"
which can use QMP to find out when QEMU as started.
this requires: "libxl_dm: Pre-open QMP socket for QEMU"
But that only works with dm_restrict=1 as explain in the patch.
* "libxl: Re-implement domain_suspend_device_model using libxl__ev_qmp"
Which rewrite libxl__qmp_save(), and adds the ability to have QEMU save
its state to a file descriptor which libxl will have openned.
Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git
br.libxl-ev-qmp-v
Cheers,
Anthony PERARD (14):
libxl: Enhance libxl__sendmsg_fds to deal with EINTR and EWOULDBLOCK
libxl_qmp: Separate QMP message generation from qmp_send_prepare
libxl_qmp: Change qmp_qemu_check_version to compare version
libxl: Add wrapper around libxl__json_object_to_json JSON
libxl: Design of an async API to issue QMP commands to QEMU
libxl_qmp: Implementation of libxl__ev_qmp_*
libxl_exec: Add libxl__spawn_initiate_failure
libxl: Add init/dispose of for libxl__domain_build_state
libxl_dm: Pre-open QMP socket for QEMU
libxl: Add dmss_init/dispose for libxl__dm_spawn_state
libxl: QEMU startup sync based on QMP
libxl_qmp: Store advertised QEMU version in libxl__ev_qmp
libxl: Change libxl__domain_suspend_device_model() to be async
libxl: Re-implement domain_suspend_device_model using libxl__ev_qmp
tools/libxl/libxl_create.c | 54 +-
tools/libxl/libxl_dm.c | 142 ++++-
tools/libxl/libxl_dom_suspend.c | 37 +-
tools/libxl/libxl_exec.c | 11 +-
tools/libxl/libxl_internal.h | 172 +++++-
tools/libxl/libxl_qmp.c | 992 ++++++++++++++++++++++++++++++--
tools/libxl/libxl_types.idl | 7 +
tools/libxl/libxl_utils.c | 25 +-
8 files changed, 1334 insertions(+), 106 deletions(-)
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel