Hi, On Tue, 4 Mar 2025 at 20:05, Peter Xu <pet...@redhat.com> wrote: > I think we need the header, the ram is a module. > Do similarly like qemu_savevm_state_complete_precopy_iterable() but do > whatever a vmstate hander wants, so it'll be with a header.
* I don't fully see yet how this shall work. > Please consider adding details like "we need message AAA on BBB channel to > serialize with CCC" and details. Not asking that as required to merge, but > my understanding is that that's what is missing and that's why none of yet > versions can make sure of it in code. Maybe that'll help you to understand > how that was serialized. * Okay, will try. > > MULTIFD_SYNC_LOCAL will not invoke MULTIFD_FLAG_SYNC, which we need. ... > So is it your intention to not send MULTIFD_FLAG_SYNC above? > In all cases, I still think that's not the right way to do. * It makes little difference; MULTIFD_FLAG_SYNC is also used to increase 'multifd_recv_state->sem_sync' semaphore on the destination side, which then unblocks the 'main' thread waiting on it. === diff --git a/migration/migration.c b/migration/migration.c index 65fc4f5eed..d8c4ea0ad1 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3402,7 +3402,7 @@ static MigIterateState migration_iteration_run(MigrationState *s) && can_switchover && qatomic_read(&s->start_postcopy)) { if (migrate_multifd()) { multifd_send_flush(); - multifd_send_sync_main(MULTIFD_SYNC_LOCAL); + multifd_send_sync_main(MULTIFD_SYNC_ALL); qemu_savevm_send_multifd_recv_sync(s->to_dst_file); multifd_send_shutdown(); } diff --git a/migration/multifd.c b/migration/multifd.c index 8928ca2611..2b5bc2d478 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1265,7 +1265,7 @@ static void *multifd_recv_thread(void *opaque) rcu_unregister_thread(); trace_multifd_recv_thread_end(p->id, p->packets_recved); - qemu_sem_post(&multifd_recv_state->sem_sync); +// qemu_sem_post(&multifd_recv_state->sem_sync); return NULL; } === host-1] 63/63 qemu:qtest+qtest-x86_64 / qtest-x86_64/migration-test OK 159.46s 79 subtests passed host-2] 63/63 qemu:qtest+qtest-x86_64 / qtest-x86_64/migration-test OK 164.55s 79 subtests passed === * I tried the above patch and it also works the same. I'll use this, no issues. Thank you. --- - Prasad