diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2021-10-19 07:41:04 -0700 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2021-10-19 07:41:04 -0700 |
| commit | 50352cce138ef3b30c1cda28a4df68fff5da3202 (patch) | |
| tree | cac0f47717ae21a351c720847fedb41425a10263 /migration/migration.c | |
| parent | 362534a643b4a34bcb223996538ce9de5cdab946 (diff) | |
| parent | 911965ace9386e35ca022a65bb45a32fd421af3e (diff) | |
| download | focaccia-qemu-50352cce138ef3b30c1cda28a4df68fff5da3202.tar.gz focaccia-qemu-50352cce138ef3b30c1cda28a4df68fff5da3202.zip | |
Merge remote-tracking branch 'remotes/juanquintela/tags/migration.next-pull-request' into staging
Migration Pull request (3rd try) Hi This should fix all the freebsd problems. Please apply, # gpg: Signature made Tue 19 Oct 2021 02:28:51 AM PDT # gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full] # gpg: aka "Juan Quintela <quintela@trasno.org>" [full] * remotes/juanquintela/tags/migration.next-pull-request: migration/rdma: advise prefetch write for ODP region migration/rdma: Try to register On-Demand Paging memory region migration: allow enabling mutilfd for specific protocol only migration: allow multifd for socket protocol only migration/ram: Don't passs RAMState to migration_clear_memory_region_dirty_bitmap_*() multifd: Unconditionally unregister yank function multifd: Implement yank for multifd send side Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'migration/migration.c')
| -rw-r--r-- | migration/migration.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c index 6ac807ef3d..9172686b89 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -453,10 +453,12 @@ static void qemu_start_incoming_migration(const char *uri, Error **errp) { const char *p = NULL; + migrate_protocol_allow_multifd(false); /* reset it anyway */ qapi_event_send_migration(MIGRATION_STATUS_SETUP); if (strstart(uri, "tcp:", &p) || strstart(uri, "unix:", NULL) || strstart(uri, "vsock:", NULL)) { + migrate_protocol_allow_multifd(true); socket_start_incoming_migration(p ? p : uri, errp); #ifdef CONFIG_RDMA } else if (strstart(uri, "rdma:", &p)) { @@ -1235,6 +1237,14 @@ static bool migrate_caps_check(bool *cap_list, } } + /* incoming side only */ + if (runstate_check(RUN_STATE_INMIGRATE) && + !migrate_multifd_is_allowed() && + cap_list[MIGRATION_CAPABILITY_MULTIFD]) { + error_setg(errp, "multifd is not supported by current protocol"); + return false; + } + return true; } @@ -2280,9 +2290,11 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, } } + migrate_protocol_allow_multifd(false); if (strstart(uri, "tcp:", &p) || strstart(uri, "unix:", NULL) || strstart(uri, "vsock:", NULL)) { + migrate_protocol_allow_multifd(true); socket_start_outgoing_migration(s, p ? p : uri, &local_err); #ifdef CONFIG_RDMA } else if (strstart(uri, "rdma:", &p)) { |