[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v7 00/14] libxl: Enable save/restore/migration of a restricted QEMU + libxl__ev_qmp_*
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 Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |