[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 11/41] migration: Delay start of migration main routi
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PULL 11/41] migration: Delay start of migration main routines |
Date: |
Wed, 9 May 2018 13:23:36 +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 8e5b421b97..61c4ee7850 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -430,7 +430,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);
@@ -448,7 +448,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 7c69598c54..26e5951d56 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -200,6 +200,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 87434d3fce..f7e8615e15 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -717,6 +717,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 e09fd1aae5..7a5eb562b8 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -170,6 +170,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] [PULL 01/41] migration: fix saving normal page even if it's been compressed, (continued)
- [Qemu-devel] [PULL 01/41] migration: fix saving normal page even if it's been compressed, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 02/41] tests: Add migration precopy test, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 03/41] tests: Add migration xbzrle test, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 04/41] tests: Migration ppc now inlines its program, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 06/41] migration: Introduce multifd_recv_new_channel(), Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 05/41] migration: Set error state in case of error, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 07/41] migration: terminate_* can be called for other threads, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 08/41] migration: Be sure all recv channels are created, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 09/41] migration: Export functions to create send channels, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 10/41] migration: Create multifd channels, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 11/41] migration: Delay start of migration main routines,
Juan Quintela <=
- [Qemu-devel] [PULL 12/41] migration: Transmit initial package through the multifd channels, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 13/41] migration: Define MultifdRecvParams sooner, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 15/41] migration: new postcopy-pause state, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 16/41] migration: implement "postcopy-pause" src logic, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 17/41] migration: allow dst vm pause on postcopy, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 18/41] migration: allow src return path to pause, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 14/41] migration: let incoming side use thread context, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 19/41] migration: allow fault thread to pause, Juan Quintela, 2018/05/09
- [Qemu-devel] [PULL 20/41] qmp: hmp: add migrate "resume" option, Juan Quintela, 2018/05/09