[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 04/13] ram.c: Dont change param->block in the compress thread
From: |
Juan Quintela |
Subject: |
[PATCH 04/13] ram.c: Dont change param->block in the compress thread |
Date: |
Mon, 8 May 2023 17:26:48 +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 7bc05fc034..b552a9e538 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
- [PATCH 00/13] Migration PULL request (20230508 edition), Juan Quintela, 2023/05/08
- [PATCH 01/13] qtest/migration-test.c: Add tests with compress enabled, Juan Quintela, 2023/05/08
- [PATCH 02/13] qtest/migration-test.c: Add postcopy tests with compress enabled, Juan Quintela, 2023/05/08
- [PATCH 03/13] ram.c: Let the compress threads return a CompressResult enum, Juan Quintela, 2023/05/08
- [PATCH 04/13] ram.c: Dont change param->block in the compress thread,
Juan Quintela <=
- [PATCH 05/13] ram.c: Reset result after sending queued data, Juan Quintela, 2023/05/08
- [PATCH 06/13] ram.c: Do not call save_page_header() from compress threads, Juan Quintela, 2023/05/08
- [PATCH 07/13] ram.c: Call update_compress_thread_counts from compress_send_queued_data, Juan Quintela, 2023/05/08
- [PATCH 08/13] ram.c: Remove last ram.c dependency from the core compress code, Juan Quintela, 2023/05/08
- [PATCH 09/13] ram.c: Move core compression code into its own file, Juan Quintela, 2023/05/08
- [PATCH 11/13] ram compress: Assert that the file buffer matches the result, Juan Quintela, 2023/05/08
- [PATCH 12/13] ram-compress.c: Make target independent, Juan Quintela, 2023/05/08
- [PATCH 13/13] migration: Initialize and cleanup decompression in migration.c, Juan Quintela, 2023/05/08
- [PATCH 10/13] ram.c: Move core decompression code into its own file, Juan Quintela, 2023/05/08
- Re: [PATCH 00/13] Migration PULL request (20230508 edition), Richard Henderson, 2023/05/08