[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 05/19] migration: Take bitmap mutex when completing ram migration
From: |
Juan Quintela |
Subject: |
[PULL 05/19] migration: Take bitmap mutex when completing ram migration |
Date: |
Thu, 15 Dec 2022 10:38:35 +0100 |
From: Peter Xu <peterx@redhat.com>
Any call to ram_find_and_save_block() needs to take the bitmap mutex. We
used to not take it for most of ram_save_complete() because we thought
we're the only one left using the bitmap, but it's not true after the
preempt full patchset applied, since the return path can be taking it too.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/ram.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/migration/ram.c b/migration/ram.c
index 8aad17c429..cc72c24c18 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -3406,6 +3406,7 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
/* try transferring iterative blocks of memory */
/* flush all remaining blocks regardless of rate limiting */
+ qemu_mutex_lock(&rs->bitmap_mutex);
while (true) {
int pages;
@@ -3419,6 +3420,7 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
break;
}
}
+ qemu_mutex_unlock(&rs->bitmap_mutex);
flush_compressed_data(rs);
ram_control_after_iterate(f, RAM_CONTROL_FINISH);
--
2.38.1
- [PULL 00/19] Next 8.0 patches, Juan Quintela, 2022/12/15
- [PULL 01/19] multifd: Create page_size fields into both MultiFD{Recv, Send}Params, Juan Quintela, 2022/12/15
- [PULL 02/19] multifd: Create page_count fields into both MultiFD{Recv, Send}Params, Juan Quintela, 2022/12/15
- [PULL 03/19] migration: Export ram_transferred_ram(), Juan Quintela, 2022/12/15
- [PULL 04/19] migration: Export ram_release_page(), Juan Quintela, 2022/12/15
- [PULL 05/19] migration: Take bitmap mutex when completing ram migration,
Juan Quintela <=
- [PULL 06/19] migration: Add postcopy_preempt_active(), Juan Quintela, 2022/12/15
- [PULL 08/19] migration: Trivial cleanup save_page_header() on same block check, Juan Quintela, 2022/12/15
- [PULL 07/19] migration: Cleanup xbzrle zero page cache update logic, Juan Quintela, 2022/12/15
- [PULL 09/19] migration: Remove RAMState.f references in compression code, Juan Quintela, 2022/12/15
- [PULL 11/19] migration: Use atomic ops properly for page accountings, Juan Quintela, 2022/12/15
- [PULL 12/19] migration: Teach PSS about host page, Juan Quintela, 2022/12/15
- [PULL 10/19] migration: Yield bitmap_mutex properly when sending/sleeping, Juan Quintela, 2022/12/15
- [PULL 14/19] migration: Add pss_init(), Juan Quintela, 2022/12/15
- [PULL 13/19] migration: Introduce pss_channel, Juan Quintela, 2022/12/15
- [PULL 15/19] migration: Make PageSearchStatus part of RAMState, Juan Quintela, 2022/12/15