[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 02/14] ram.c: Dont change param->block in the compress thread
From: |
Lukas Straub |
Subject: |
[PATCH 02/14] ram.c: Dont change param->block in the compress thread |
Date: |
Sun, 2 Apr 2023 17:56:07 +0000 |
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>
---
migration/ram.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index ca561e62bd..3c9fac086d 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -503,6 +503,7 @@ typedef enum CompressResult CompressResult;
struct CompressParam {
bool done;
bool quit;
+ bool trigger;
CompressResult result;
QEMUFile *file;
QemuMutex mutex;
@@ -576,10 +577,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,
@@ -1556,6 +1557,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.30.2
pgpbTMxcZ_s9i.pgp
Description: OpenPGP digital signature
- [PATCH 00/14] migration/ram.c: Refactor compress code, Lukas Straub, 2023/04/02
- [PATCH 03/14] ram.c: Reset result after sending queued data, Lukas Straub, 2023/04/02
- [PATCH 04/14] ram.c: Do not call save_page_header() from compress threads, Lukas Straub, 2023/04/02
- [PATCH 01/14] ram.c: Let the compress threads return a CompressResult enum, Lukas Straub, 2023/04/02
- [PATCH 02/14] ram.c: Dont change param->block in the compress thread,
Lukas Straub <=
- [PATCH 05/14] ram.c: Call update_compress_thread_counts from compress_send_queued_data, Lukas Straub, 2023/04/02
- [PATCH 06/14] ram.c: Remove last ram.c dependency from the core compress code, Lukas Straub, 2023/04/02
- [PATCH 07/14] ram.c: Introduce whitespace (squash with next patch), Lukas Straub, 2023/04/02
- [PATCH 08/14] ram.c: Move core compression code into its own file, Lukas Straub, 2023/04/02
- [PATCH 09/14] ram.c: Remove whitespace (squash with previous patch), Lukas Straub, 2023/04/02
- [PATCH 10/14] ram.c: Move core decompression code into its own file, Lukas Straub, 2023/04/02
- [PATCH 11/14] ram compress: Assert that the file buffer matches the result, Lukas Straub, 2023/04/02
- [PATCH 12/14] ram.c: Remove unused include after moving out code, Lukas Straub, 2023/04/02