}
if (migration_incoming_setup(ioc, ch, &local_err)) {
- migration_incoming_process();
+ migration_start_incoming();
}
}
out:
migration_ioc_register_yank(ioc);
migration_outgoing_setup(ioc);
- migration_connect(s);
+ migration_start_outgoing(s);
}
}
#endif
-void exec_start_outgoing_migration(MigrationState *s, strList *command,
- Error **errp)
+void exec_connect_outgoing(MigrationState *s, strList *command, Error **errp)
{
QIOChannel *ioc = NULL;
g_auto(GStrv) argv = strv_from_str_list(command);
return G_SOURCE_REMOVE;
}
-void exec_start_incoming_migration(strList *command, Error **errp)
+void exec_connect_incoming(strList *command, Error **errp)
{
QIOChannel *ioc;
g_auto(GStrv) argv = strv_from_str_list(command);
#ifdef WIN32
const char *exec_get_cmd_path(void);
#endif
-void exec_start_incoming_migration(strList *host_port, Error **errp);
+void exec_connect_incoming(strList *host_port, Error **errp);
-void exec_start_outgoing_migration(MigrationState *s, strList *host_port,
- Error **errp);
+void exec_connect_outgoing(MigrationState *s, strList *host_port, Error **errp);
#endif
return false;
}
-void fd_start_outgoing_migration(MigrationState *s, const char *fdname, Error **errp)
+void fd_connect_outgoing(MigrationState *s, const char *fdname, Error **errp)
{
QIOChannel *ioc;
int fd = monitor_get_fd(monitor_cur(), fdname, errp);
return G_SOURCE_REMOVE;
}
-void fd_start_incoming_migration(const char *fdname, Error **errp)
+void fd_connect_incoming(const char *fdname, Error **errp)
{
QIOChannel *ioc;
int fd = monitor_fd_param(monitor_cur(), fdname, errp);
#ifndef QEMU_MIGRATION_FD_H
#define QEMU_MIGRATION_FD_H
-void fd_start_incoming_migration(const char *fdname, Error **errp);
+void fd_connect_incoming(const char *fdname, Error **errp);
-void fd_start_outgoing_migration(MigrationState *s, const char *fdname,
- Error **errp);
+void fd_connect_outgoing(MigrationState *s, const char *fdname,
+ Error **errp);
#endif
return ret;
}
-void file_start_outgoing_migration(MigrationState *s,
- FileMigrationArgs *file_args, Error **errp)
+void file_connect_outgoing(MigrationState *s,
+ FileMigrationArgs *file_args, Error **errp)
{
g_autoptr(QIOChannelFile) fioc = NULL;
g_autofree char *filename = g_strdup(file_args->filename);
}
}
-void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp)
+void file_connect_incoming(FileMigrationArgs *file_args, Error **errp)
{
g_autofree char *filename = g_strdup(file_args->filename);
QIOChannelFile *fioc = NULL;
#include "channel.h"
#include "multifd.h"
-void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp);
+void file_connect_incoming(FileMigrationArgs *file_args, Error **errp);
-void file_start_outgoing_migration(MigrationState *s,
- FileMigrationArgs *file_args, Error **errp);
+void file_connect_outgoing(MigrationState *s,
+ FileMigrationArgs *file_args, Error **errp);
int file_parse_offset(char *filespec, uint64_t *offsetp, Error **errp);
void file_cleanup_outgoing_migration(void);
bool file_send_channel_create(gpointer opaque, Error **errp);
return true;
}
-static void qemu_start_incoming_migration(const char *uri, bool has_channels,
+static void qemu_setup_incoming_migration(const char *uri, bool has_channels,
MigrationChannelList *channels,
Error **errp)
{
if (saddr->type == SOCKET_ADDRESS_TYPE_INET ||
saddr->type == SOCKET_ADDRESS_TYPE_UNIX ||
saddr->type == SOCKET_ADDRESS_TYPE_VSOCK) {
- socket_start_incoming_migration(saddr, errp);
+ socket_connect_incoming(saddr, errp);
} else if (saddr->type == SOCKET_ADDRESS_TYPE_FD) {
- fd_start_incoming_migration(saddr->u.fd.str, errp);
+ fd_connect_incoming(saddr->u.fd.str, errp);
}
#ifdef CONFIG_RDMA
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_RDMA) {
- rdma_start_incoming_migration(&addr->u.rdma, errp);
+ rdma_connect_incoming(&addr->u.rdma, errp);
#endif
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_EXEC) {
- exec_start_incoming_migration(addr->u.exec.args, errp);
+ exec_connect_incoming(addr->u.exec.args, errp);
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_FILE) {
- file_start_incoming_migration(&addr->u.file, errp);
+ file_connect_incoming(&addr->u.file, errp);
} else {
error_setg(errp, "unknown migration protocol: %s", uri);
}
return false;
}
-void migration_incoming_process(void)
+void migration_start_incoming(void)
{
if (postcopy_try_recover()) {
return;
mis->exit_on_error =
has_exit_on_error ? exit_on_error : INMIGRATE_DEFAULT_EXIT_ON_ERROR;
- qemu_start_incoming_migration(uri, has_channels, channels, &local_err);
+ qemu_setup_incoming_migration(uri, has_channels, channels, &local_err);
if (local_err) {
yank_unregister_instance(MIGRATION_YANK_INSTANCE);
* only re-setup the migration stream and poke existing migration
* to continue using that newly established channel.
*/
- qemu_start_incoming_migration(uri, false, NULL, errp);
+ qemu_setup_incoming_migration(uri, false, NULL, errp);
}
void qmp_migrate_pause(Error **errp)
if (saddr->type == SOCKET_ADDRESS_TYPE_INET ||
saddr->type == SOCKET_ADDRESS_TYPE_UNIX ||
saddr->type == SOCKET_ADDRESS_TYPE_VSOCK) {
- socket_start_outgoing_migration(s, saddr, &local_err);
+ socket_connect_outgoing(s, saddr, &local_err);
} else if (saddr->type == SOCKET_ADDRESS_TYPE_FD) {
- fd_start_outgoing_migration(s, saddr->u.fd.str, &local_err);
+ fd_connect_outgoing(s, saddr->u.fd.str, &local_err);
}
#ifdef CONFIG_RDMA
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_RDMA) {
- rdma_start_outgoing_migration(s, &addr->u.rdma, &local_err);
+ rdma_connect_outgoing(s, &addr->u.rdma, &local_err);
#endif
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_EXEC) {
- exec_start_outgoing_migration(s, addr->u.exec.args, &local_err);
+ exec_connect_outgoing(s, addr->u.exec.args, &local_err);
} else if (addr->transport == MIGRATION_ADDRESS_TYPE_FILE) {
- file_start_outgoing_migration(s, &addr->u.file, &local_err);
+ file_connect_outgoing(s, &addr->u.file, &local_err);
} else {
error_setg(&local_err, "uri is not a valid migration protocol");
}
return NULL;
}
-void migration_connect(MigrationState *s)
+void migration_start_outgoing(MigrationState *s)
{
Error *local_err = NULL;
uint64_t rate_limit;
void migrate_error_propagate(MigrationState *s, Error *error);
bool migrate_has_error(MigrationState *s);
-void migration_connect(MigrationState *s);
+void migration_start_outgoing(MigrationState *s);
+void migration_start_incoming(void);
int migration_call_notifiers(MigrationEventType type, Error **errp);
rdma->migration_started_on_destination = 1;
migration_incoming_setup(ioc, CH_MAIN, &error_abort);
- migration_incoming_process();
+ migration_start_incoming();
}
-void rdma_start_incoming_migration(InetSocketAddress *host_port,
- Error **errp)
+void rdma_connect_incoming(InetSocketAddress *host_port, Error **errp)
{
MigrationState *s = migrate_get_current();
int ret;
RDMAContext *rdma;
- trace_rdma_start_incoming_migration();
+ trace_rdma_connect_incoming();
/* Avoid ram_block_discard_disable(), cannot change during migration. */
if (ram_block_discard_is_required()) {
goto err;
}
- trace_rdma_start_incoming_migration_after_dest_init();
+ trace_rdma_connect_incoming_after_dest_init();
ret = rdma_listen(rdma->listen_id, 5);
goto cleanup_rdma;
}
- trace_rdma_start_incoming_migration_after_rdma_listen();
+ trace_rdma_connect_incoming_after_rdma_listen();
s->rdma_migration = true;
qemu_set_fd_handler(rdma->channel->fd, rdma_accept_incoming_migration,
NULL, (void *)(intptr_t)rdma);
g_free(rdma);
}
-void rdma_start_outgoing_migration(void *opaque,
- InetSocketAddress *host_port, Error **errp)
+void rdma_connect_outgoing(void *opaque,
+ InetSocketAddress *host_port, Error **errp)
{
MigrationState *s = opaque;
RDMAContext *rdma_return_path = NULL;
goto err;
}
- trace_rdma_start_outgoing_migration_after_rdma_source_init();
+ trace_rdma_connect_outgoing_after_rdma_source_init();
ret = qemu_rdma_connect(rdma, false, errp);
if (ret < 0) {
rdma_return_path->is_return_path = true;
}
- trace_rdma_start_outgoing_migration_after_rdma_connect();
+ trace_rdma_connect_outgoing_after_rdma_connect();
s->rdma_migration = true;
migration_outgoing_setup(rdma_new_output(rdma));
- migration_connect(s);
+ migration_start_outgoing(s);
return;
return_path_err:
qemu_rdma_cleanup(rdma);
#include "system/memory.h"
-void rdma_start_outgoing_migration(void *opaque, InetSocketAddress *host_port,
- Error **errp);
+void rdma_connect_outgoing(void *opaque, InetSocketAddress *host_port,
+ Error **errp);
-void rdma_start_incoming_migration(InetSocketAddress *host_port, Error **errp);
+void rdma_connect_incoming(InetSocketAddress *host_port, Error **errp);
/*
* Constants used by rdma return codes
migration_connect_error_propagate(data->s, err);
}
-void socket_start_outgoing_migration(MigrationState *s,
- SocketAddress *saddr,
- Error **errp)
+void socket_connect_outgoing(MigrationState *s, SocketAddress *saddr,
+ Error **errp)
{
QIOChannelSocket *sioc = qio_channel_socket_new();
struct SocketConnectData *data = g_new0(struct SocketConnectData, 1);
object_unref(OBJECT(listener));
}
-void socket_start_incoming_migration(SocketAddress *saddr,
- Error **errp)
+void socket_connect_incoming(SocketAddress *saddr, Error **errp)
{
QIONetListener *listener = qio_net_listener_new();
MigrationIncomingState *mis = migration_incoming_get_current();
void socket_send_channel_create(QIOTaskFunc f, void *data);
-void socket_start_incoming_migration(SocketAddress *saddr, Error **errp);
+void socket_connect_incoming(SocketAddress *saddr, Error **errp);
-void socket_start_outgoing_migration(MigrationState *s,
- SocketAddress *saddr, Error **errp);
+void socket_connect_outgoing(MigrationState *s,
+ SocketAddress *saddr, Error **errp);
void socket_cleanup_outgoing_migration(void);
#endif
rdma_registration_start(uint64_t flags) "%" PRIu64
rdma_registration_stop(uint64_t flags) "%" PRIu64
rdma_registration_stop_ram(void) ""
-rdma_start_incoming_migration(void) ""
-rdma_start_incoming_migration_after_dest_init(void) ""
-rdma_start_incoming_migration_after_rdma_listen(void) ""
-rdma_start_outgoing_migration_after_rdma_connect(void) ""
-rdma_start_outgoing_migration_after_rdma_source_init(void) ""
+rdma_connect_incoming(void) ""
+rdma_connect_incoming_after_dest_init(void) ""
+rdma_connect_incoming_after_rdma_listen(void) ""
+rdma_connect_outgoing_after_rdma_connect(void) ""
+rdma_connect_outgoing_after_rdma_source_init(void) ""
# postcopy-ram.c
postcopy_discard_send_finish(const char *ramblock, int nwords, int ncmds) "%s mask words sent=%d in %d commands"