[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 11/39] migration: Simplify compress_page_with_multithread()
From: |
Juan Quintela |
Subject: |
[PULL 11/39] migration: Simplify compress_page_with_multithread() |
Date: |
Tue, 24 Oct 2023 15:12:37 +0200 |
Move the goto to a while true.
Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-6-quintela@redhat.com>
---
migration/ram-compress.c | 48 ++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/migration/ram-compress.c b/migration/ram-compress.c
index ef03d60a6d..a991b15b7a 100644
--- a/migration/ram-compress.c
+++ b/migration/ram-compress.c
@@ -271,35 +271,35 @@ bool compress_page_with_multi_thread(RAMBlock *block,
ram_addr_t offset,
thread_count = migrate_compress_threads();
qemu_mutex_lock(&comp_done_lock);
-retry:
- for (int i = 0; i < thread_count; i++) {
- if (comp_param[i].done) {
- CompressParam *param = &comp_param[i];
- qemu_mutex_lock(¶m->mutex);
- param->done = false;
- send_queued_data(param);
- assert(qemu_file_buffer_empty(param->file));
- compress_reset_result(param);
- set_compress_params(param, block, offset);
- qemu_cond_signal(¶m->cond);
- qemu_mutex_unlock(¶m->mutex);
+ while (true) {
+ for (int i = 0; i < thread_count; i++) {
+ if (comp_param[i].done) {
+ CompressParam *param = &comp_param[i];
+ qemu_mutex_lock(¶m->mutex);
+ param->done = false;
+ send_queued_data(param);
+ assert(qemu_file_buffer_empty(param->file));
+ compress_reset_result(param);
+ set_compress_params(param, block, offset);
+
+ qemu_cond_signal(¶m->cond);
+ qemu_mutex_unlock(¶m->mutex);
+ qemu_mutex_unlock(&comp_done_lock);
+ return true;
+ }
+ }
+ if (!wait) {
qemu_mutex_unlock(&comp_done_lock);
- return true;
+ return false;
}
- }
-
- /*
- * wait for the free thread if the user specifies 'compress-wait-thread',
- * otherwise we will post the page out in the main thread as normal page.
- */
- if (wait) {
+ /*
+ * wait for a free thread if the user specifies
+ * 'compress-wait-thread', otherwise we will post the page out
+ * in the main thread as normal page.
+ */
qemu_cond_wait(&comp_done_cond, &comp_done_lock);
- goto retry;
}
- qemu_mutex_unlock(&comp_done_lock);
-
- return false;
}
/* return the size after decompression, or negative value on error */
--
2.41.0
- [PULL 03/39] migration/doc: How to migrate when hosts have different features, (continued)
- [PULL 03/39] migration/doc: How to migrate when hosts have different features, Juan Quintela, 2023/10/24
- [PULL 05/39] migration: Receiving a zero page non zero is an error, Juan Quintela, 2023/10/24
- [PULL 04/39] migration/doc: We broke backwards compatibility, Juan Quintela, 2023/10/24
- [PULL 06/39] migration: Rename ram_handle_compressed() to ram_handle_zero(), Juan Quintela, 2023/10/24
- [PULL 08/39] migration: Give one error if trying to set COMPRESSION and XBZRLE, Juan Quintela, 2023/10/24
- [PULL 09/39] migration: Remove save_page_use_compression(), Juan Quintela, 2023/10/24
- [PULL 12/39] migration: Move busy++ to migrate_with_multithread, Juan Quintela, 2023/10/24
- [PULL 10/39] migration: Make compress_data_with_multithreads return bool, Juan Quintela, 2023/10/24
- [PULL 13/39] migration: Create compress_update_rates(), Juan Quintela, 2023/10/24
- [PULL 14/39] migration: Export send_queued_data(), Juan Quintela, 2023/10/24
- [PULL 11/39] migration: Simplify compress_page_with_multithread(),
Juan Quintela <=
- [PULL 16/39] migration: Merge flush_compressed_data() and compress_flush_data(), Juan Quintela, 2023/10/24
- [PULL 15/39] migration: Move ram_flush_compressed_data() to ram-compress.c, Juan Quintela, 2023/10/24
- [PULL 19/39] hw/s390x/s390-skeys: Don't call register_savevm_live() during instance_init(), Juan Quintela, 2023/10/24
- [PULL 18/39] hw/ipmi: Don't call vmstate_register() from instance_init() functions, Juan Quintela, 2023/10/24
- [PULL 20/39] hw/s390x/s390-stattrib: Simplify handling of the "migration-enabled" property, Juan Quintela, 2023/10/24
- [PULL 23/39] migration: rename vmstate_save_needed->vmstate_section_needed, Juan Quintela, 2023/10/24
- [PULL 21/39] hw/s390x/s390-stattrib: Don't call register_savevm_live() during instance_init(), Juan Quintela, 2023/10/24
- [PULL 22/39] migration/ram: Fix compilation with -Wshadow=local, Juan Quintela, 2023/10/24