[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v12 07/21] migration: Delay start of migration main
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH v12 07/21] migration: Delay start of migration main routines |
Date: |
Wed, 25 Apr 2018 13:27:09 +0200 |
We need to make sure that we have started all the multifd threads.
Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
---
migration/migration.c | 4 ++--
migration/migration.h | 1 +
migration/ram.c | 3 +++
migration/socket.c | 4 ++++
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 98f85e982c..9b510a809a 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -447,7 +447,7 @@ static void migration_incoming_setup(QEMUFile *f)
qemu_file_set_blocking(f, false);
}
-static void migration_incoming_process(void)
+void migration_incoming_process(void)
{
Coroutine *co = qemu_coroutine_create(process_incoming_migration_co, NULL);
qemu_coroutine_enter(co);
@@ -465,7 +465,7 @@ void migration_ioc_process_incoming(QIOChannel *ioc)
if (!mis->from_src_file) {
QEMUFile *f = qemu_fopen_channel_input(ioc);
- migration_fd_process_incoming(f);
+ migration_incoming_setup(f);
return;
}
multifd_recv_new_channel(ioc);
diff --git a/migration/migration.h b/migration/migration.h
index 4774ee305f..e20f680bac 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -188,6 +188,7 @@ void migrate_set_state(int *state, int old_state, int
new_state);
void migration_fd_process_incoming(QEMUFile *f);
void migration_ioc_process_incoming(QIOChannel *ioc);
+void migration_incoming_process(void);
bool migration_has_all_channels(void);
diff --git a/migration/ram.c b/migration/ram.c
index 54b1f8e836..5a87d74862 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -682,6 +682,9 @@ void multifd_recv_new_channel(QIOChannel *ioc)
qemu_thread_create(&p->thread, p->name, multifd_recv_thread, p,
QEMU_THREAD_JOINABLE);
atomic_inc(&multifd_recv_state->count);
+ if (multifd_recv_state->count == migrate_multifd_channels()) {
+ migration_incoming_process();
+ }
}
/**
diff --git a/migration/socket.c b/migration/socket.c
index 893a04f4cc..d4a2c1e916 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -171,6 +171,10 @@ static void
socket_accept_incoming_migration(QIONetListener *listener,
qio_net_listener_disconnect(listener);
object_unref(OBJECT(listener));
+
+ if (!migrate_use_multifd()) {
+ migration_incoming_process();
+ }
}
}
--
2.17.0
- [Qemu-devel] [PATCH v12 00/21] Multifd, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 01/21] migration: Set error state in case of error, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 02/21] migration: Introduce multifd_recv_new_channel(), Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 03/21] migration: terminate_* can be called for other threads, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 05/21] migration: Export functions to create send channels, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 04/21] migration: Be sure all recv channels are created, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 06/21] migration: Create multifd channels, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 07/21] migration: Delay start of migration main routines,
Juan Quintela <=
- [Qemu-devel] [PATCH v12 08/21] migration: Transmit initial package through the multifd channels, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 09/21] migration: Define MultifdRecvParams sooner, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 10/21] migration: Create multipage support, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 11/21] migration: Create multifd packet, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 12/21] migration: Add multifd traces for start/end thread, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 13/21] migration: Calculate transferred ram correctly, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 14/21] migration: Multifd channels always wait on the sem, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 15/21] migration: Add block where to send/receive packets, Juan Quintela, 2018/04/25
- [Qemu-devel] [PATCH v12 18/21] migration: Start sending messages, Juan Quintela, 2018/04/25