qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: qemu-devel@nongnu.org
Cc: Leonardo Bras <leobras@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>,
	Lukas Straub <lukasstraub2@web.de>
Subject: [PULL 12/21] ram.c: Dont change param->block in the compress thread
Date: Fri, 28 Apr 2023 21:11:54 +0200	[thread overview]
Message-ID: <20230428191203.39520-13-quintela@redhat.com> (raw)
In-Reply-To: <20230428191203.39520-1-quintela@redhat.com>

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(&param->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(&param->mutex);
 
             result = do_compress_ram_page(param->file, &param->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



  parent reply	other threads:[~2023-04-28 19:12 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-28 19:11 [PULL 00/21] Migration 20230428 patches Juan Quintela
2023-04-28 19:11 ` [PULL 01/21] multifd: We already account for this packet on the multifd thread Juan Quintela
2023-04-28 19:11 ` [PULL 02/21] migration: Move ram_stats to its own file migration-stats.[ch] Juan Quintela
2023-04-28 19:11 ` [PULL 03/21] migration: Rename ram_counters to mig_stats Juan Quintela
2023-04-28 19:11 ` [PULL 04/21] migration: Rename RAMStats to MigrationAtomicStats Juan Quintela
2023-04-28 19:11 ` [PULL 05/21] migration/rdma: Split the zero page case from acct_update_position Juan Quintela
2023-04-28 19:11 ` [PULL 06/21] migration/rdma: Unfold last user of acct_update_position() Juan Quintela
2023-04-28 19:11 ` [PULL 07/21] migration: Drop unused parameter for migration_tls_get_creds() Juan Quintela
2023-04-28 19:11 ` [PULL 08/21] migration: Drop unused parameter for migration_tls_client_create() Juan Quintela
2023-04-28 19:11 ` [PULL 09/21] qtest/migration-test.c: Add tests with compress enabled Juan Quintela
2023-04-28 19:11 ` [PULL 10/21] qtest/migration-test.c: Add postcopy " Juan Quintela
2023-04-28 19:11 ` [PULL 11/21] ram.c: Let the compress threads return a CompressResult enum Juan Quintela
2023-04-28 19:11 ` Juan Quintela [this message]
2023-04-28 19:11 ` [PULL 13/21] ram.c: Reset result after sending queued data Juan Quintela
2023-04-28 19:11 ` [PULL 14/21] ram.c: Do not call save_page_header() from compress threads Juan Quintela
2023-04-28 19:11 ` [PULL 15/21] ram.c: Call update_compress_thread_counts from compress_send_queued_data Juan Quintela
2023-04-28 19:11 ` [PULL 16/21] ram.c: Remove last ram.c dependency from the core compress code Juan Quintela
2023-04-28 19:11 ` [PULL 17/21] ram.c: Move core compression code into its own file Juan Quintela
2023-04-28 19:12 ` [PULL 18/21] ram.c: Move core decompression " Juan Quintela
2023-04-28 19:12 ` [PULL 19/21] ram compress: Assert that the file buffer matches the result Juan Quintela
2023-04-28 19:12 ` [PULL 20/21] ram-compress.c: Make target independent Juan Quintela
2023-04-28 19:12 ` [PULL 21/21] migration: Initialize and cleanup decompression in migration.c Juan Quintela
2023-04-29 18:45 ` [PULL 00/21] Migration 20230428 patches Richard Henderson
2023-04-29 20:14   ` Lukas Straub
2023-04-29 22:08     ` Richard Henderson
2023-05-02 10:39   ` Juan Quintela
2023-05-02 10:43     ` Peter Maydell
2023-05-03  9:17       ` Juan Quintela
2023-05-03 12:57         ` Daniel P. Berrangé
2023-05-03 12:57         ` Peter Maydell
2023-05-03 13:29           ` Juan Quintela
2023-05-03 13:58             ` Peter Maydell
2023-05-08  1:06     ` Lukas Straub
2023-05-08  8:12       ` Juan Quintela
2023-05-08  9:47         ` Lukas Straub

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230428191203.39520-13-quintela@redhat.com \
    --to=quintela@redhat.com \
    --cc=leobras@redhat.com \
    --cc=lukasstraub2@web.de \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).