[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 14/17] migration: Delay the start of reception on
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH v5 14/17] migration: Delay the start of reception on main channel |
Date: |
Mon, 17 Jul 2017 15:42:35 +0200 |
When we start multifd, we will want to delay the main channel until
the others are created.
Signed-off-by: Juan Quintela <address@hidden>
---
migration/migration.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index d9d5415..e122684 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -358,14 +358,11 @@ static void process_incoming_migration_co(void *opaque)
static void migration_incoming_setup(QEMUFile *f)
{
- MigrationIncomingState *mis = migration_incoming_get_current();
-
if (multifd_load_setup() != 0) {
/* We haven't been able to create multifd threads
nothing better to do */
exit(EXIT_FAILURE);
}
- mis->from_src_file = f;
qemu_file_set_blocking(f, false);
}
@@ -384,18 +381,26 @@ void migration_fd_process_incoming(QEMUFile *f)
gboolean migration_ioc_process_incoming(QIOChannel *ioc)
{
MigrationIncomingState *mis = migration_incoming_get_current();
+ gboolean result = FALSE;
if (!mis->from_src_file) {
QEMUFile *f = qemu_fopen_channel_input(ioc);
mis->from_src_file = f;
- migration_fd_process_incoming(f);
- if (!migrate_use_multifd()) {
- return FALSE;
- } else {
- return TRUE;
+ migration_incoming_setup(f);
+ if (migrate_use_multifd()) {
+ result = TRUE;
}
+ } else {
+ /* we can only arrive here if multifd is on
+ and this is a new channel */
+ result = multifd_new_channel(ioc);
}
- return multifd_new_channel(ioc);
+ if (result == FALSE) {
+ /* called when !multifd and for last multifd channel */
+ migration_incoming_process();
+ }
+
+ return result;
}
/*
--
2.9.4
- [Qemu-devel] [PATCH v5 11/17] migration: Really use multiple pages at a time, (continued)
- [Qemu-devel] [PATCH v5 11/17] migration: Really use multiple pages at a time, Juan Quintela, 2017/07/17
- [Qemu-devel] [PATCH v5 12/17] migration: Send the fd number which we are going to use for this page, Juan Quintela, 2017/07/17
- [Qemu-devel] [PATCH v5 13/17] migration: Create thread infrastructure for multifd recv side, Juan Quintela, 2017/07/17
- [Qemu-devel] [PATCH v5 14/17] migration: Delay the start of reception on main channel,
Juan Quintela <=
- [Qemu-devel] [PATCH v5 15/17] migration: Test new fd infrastructure, Juan Quintela, 2017/07/17
- [Qemu-devel] [PATCH v5 16/17] migration: Transfer pages over new channels, Juan Quintela, 2017/07/17
- [Qemu-devel] [PATCH v5 17/17] migration: Flush receive queue, Juan Quintela, 2017/07/17