[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/21] ram.c: Dont change param->block in the compress thread
From: |
Juan Quintela |
Subject: |
[PULL 12/21] ram.c: Dont change param->block in the compress thread |
Date: |
Fri, 28 Apr 2023 21:11:54 +0200 |
From: Lukas Straub <lukasstraub2@web.de>
Instead introduce a extra parameter to trigger the compress thread.
Now, when the compress thread is done, we know what RAMBlock and
offset it did compress.
This will be used in the next commits to move save_page_header()
out of compress code.
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
migration/ram.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index 2b213b923b..ebcde3dcd4 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -492,6 +492,7 @@ typedef enum CompressResult CompressResult;
struct CompressParam {
bool done;
bool quit;
+ bool trigger;
CompressResult result;
QEMUFile *file;
QemuMutex mutex;
@@ -565,10 +566,10 @@ static void *do_data_compress(void *opaque)
qemu_mutex_lock(¶m->mutex);
while (!param->quit) {
- if (param->block) {
+ if (param->trigger) {
block = param->block;
offset = param->offset;
- param->block = NULL;
+ param->trigger = false;
qemu_mutex_unlock(¶m->mutex);
result = do_compress_ram_page(param->file, ¶m->stream,
@@ -1545,6 +1546,7 @@ static inline void set_compress_params(CompressParam
*param, RAMBlock *block,
{
param->block = block;
param->offset = offset;
+ param->trigger = true;
}
static int compress_page_with_multi_thread(RAMBlock *block, ram_addr_t offset)
--
2.40.0
- [PULL 03/21] migration: Rename ram_counters to mig_stats, (continued)
- [PULL 03/21] migration: Rename ram_counters to mig_stats, Juan Quintela, 2023/04/28
- [PULL 04/21] migration: Rename RAMStats to MigrationAtomicStats, Juan Quintela, 2023/04/28
- [PULL 07/21] migration: Drop unused parameter for migration_tls_get_creds(), Juan Quintela, 2023/04/28
- [PULL 05/21] migration/rdma: Split the zero page case from acct_update_position, Juan Quintela, 2023/04/28
- [PULL 06/21] migration/rdma: Unfold last user of acct_update_position(), Juan Quintela, 2023/04/28
- [PULL 08/21] migration: Drop unused parameter for migration_tls_client_create(), Juan Quintela, 2023/04/28
- [PULL 10/21] qtest/migration-test.c: Add postcopy tests with compress enabled, Juan Quintela, 2023/04/28
- [PULL 09/21] qtest/migration-test.c: Add tests with compress enabled, Juan Quintela, 2023/04/28
- [PULL 11/21] ram.c: Let the compress threads return a CompressResult enum, Juan Quintela, 2023/04/28
- [PULL 14/21] ram.c: Do not call save_page_header() from compress threads, Juan Quintela, 2023/04/28
- [PULL 12/21] ram.c: Dont change param->block in the compress thread,
Juan Quintela <=
- [PULL 13/21] ram.c: Reset result after sending queued data, Juan Quintela, 2023/04/28
- [PULL 16/21] ram.c: Remove last ram.c dependency from the core compress code, Juan Quintela, 2023/04/28
- [PULL 15/21] ram.c: Call update_compress_thread_counts from compress_send_queued_data, Juan Quintela, 2023/04/28
- [PULL 18/21] ram.c: Move core decompression code into its own file, Juan Quintela, 2023/04/28
- [PULL 19/21] ram compress: Assert that the file buffer matches the result, Juan Quintela, 2023/04/28
- [PULL 17/21] ram.c: Move core compression code into its own file, Juan Quintela, 2023/04/28
- [PULL 21/21] migration: Initialize and cleanup decompression in migration.c, Juan Quintela, 2023/04/28
- [PULL 20/21] ram-compress.c: Make target independent, Juan Quintela, 2023/04/28
- Re: [PULL 00/21] Migration 20230428 patches, Richard Henderson, 2023/04/29