Hi, On 12/26/22 06:33, Het Gala wrote: > Current QAPI 'migrate' command design (for initiating a migration > stream) contains information regarding different migrate transport mechanism > (tcp / unix / exec), dest-host IP address, and binding port number in form of > a string. Thus the design does seem to have some design issues. Some of the > issues, stated below are: > > 1. Use of string URIs is a data encoding scheme within a data encoding scheme. > QEMU code should directly be able to work with the results from QAPI, > without resorting to do a second level of parsing (eg. socket_parse()). > 2. For features / parameters related to migration, the migration tunables > needs > to be defined and updated upfront. For example, 'migrate-set-capability' > and 'migrate-set-parameter' is required to enable multifd capability and > multifd-number of channels respectively. Instead, 'Multifd-channels' can > directly be represented as a single additional parameter to 'migrate' > QAPI. 'migrate-set-capability' and 'migrate-set-parameter' commands could > be used for runtime tunables that need setting after migration has already > started.
Is efficient and parallel migration to file of large VMs in scope for this design? Thanks, Claudio > > The current patchset focuses on solving the first problem of multi-level > encoding of URIs. The patch defines 'migrate' command as a QAPI discriminated > union for the various transport backends (like socket, exec and rdma), and on > basis of transport backends, different migration parameters are defined. > > (uri) string --> (channel) Channel-type > Transport-type > Migration parameters based on transport type > > ----------------------------------------------------------------------------- > > Author Het Gala (5): > migration: Updated QAPI format for 'migrate' qemu monitor command > migration: HMP side changes for modified 'migrate' QAPI design > migration: Avoid multiple parsing of uri in migration code flow > migration: Modified 'migrate-incoming' QAPI and HMP side changes on > the destination interface. > migration: Established connection for listener sockets on the dest > interface > > migration/migration.c | 133 +++++++++++++++++++++++++++++---------- > migration/socket.c | 31 +-------- > migration/socket.h | 5 +- > monitor/hmp-cmds.c | 101 ++++++++++++++++++++++++++++- > qapi/migration.json | 143 ++++++++++++++++++++++++++++++++++++++++-- > softmmu/vl.c | 2 +- > 6 files changed, 344 insertions(+), 71 deletions(-) >