From: Fabiano Rosas <farosas@suse.de>
To: qemu-devel@nongnu.org
Cc: Juan Quintela <quintela@redhat.com>, Peter Xu <peterx@redhat.com>,
Leonardo Bras <leobras@redhat.com>
Subject: [PATCH RESEND 5/7] migration/ram: Move xbzrle zero page handling into save_zero_page
Date: Wed, 11 Oct 2023 15:46:02 -0300 [thread overview]
Message-ID: <20231011184604.32364-6-farosas@suse.de> (raw)
In-Reply-To: <20231011184604.32364-1-farosas@suse.de>
It makes a bit more sense to have the zero page handling of xbzrle
right where we save the zero page.
Also invert the exit condition to remove one level of indentation
which makes the next patch easier to grasp.
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
migration/ram.c | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index c8474f6fd8..1177563523 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1167,21 +1167,34 @@ static int save_zero_page_to_file(PageSearchStatus *pss, RAMBlock *block,
*
* Returns the number of pages written.
*
+ * @rs: current RAM state
* @pss: current PSS channel
* @block: block that contains the page we want to send
* @offset: offset inside the block for the page
*/
-static int save_zero_page(PageSearchStatus *pss, RAMBlock *block,
+static int save_zero_page(RAMState *rs, PageSearchStatus *pss, RAMBlock *block,
ram_addr_t offset)
{
int len = save_zero_page_to_file(pss, block, offset);
- if (len) {
- stat64_add(&mig_stats.zero_pages, 1);
- ram_transferred_add(len);
- return 1;
+ if (!len) {
+ return -1;
}
- return -1;
+
+ stat64_add(&mig_stats.zero_pages, 1);
+ ram_transferred_add(len);
+
+ /*
+ * Must let xbzrle know, otherwise a previous (now 0'd) cached
+ * page would be stale.
+ */
+ if (rs->xbzrle_started) {
+ XBZRLE_cache_lock();
+ xbzrle_cache_zero_page(block->offset + offset);
+ XBZRLE_cache_unlock();
+ }
+
+ return 1;
}
/*
@@ -2137,16 +2150,8 @@ static int ram_save_target_page_legacy(RAMState *rs, PageSearchStatus *pss)
return 1;
}
- res = save_zero_page(pss, block, offset);
+ res = save_zero_page(rs, pss, block, offset);
if (res > 0) {
- /* Must let xbzrle know, otherwise a previous (now 0'd) cached
- * page would be stale
- */
- if (rs->xbzrle_started) {
- XBZRLE_cache_lock();
- xbzrle_cache_zero_page(block->offset + offset);
- XBZRLE_cache_unlock();
- }
return res;
}
--
2.35.3
next prev parent reply other threads:[~2023-10-11 18:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 18:45 [PATCH RESEND 0/7] migration pending patches Fabiano Rosas
2023-10-11 18:45 ` [PATCH RESEND 1/7] tests/qtest: migration-test: Add tests for file-based migration Fabiano Rosas
2023-10-11 18:45 ` [PATCH RESEND 2/7] migration/ram: Refactor precopy ram loading code Fabiano Rosas
2023-10-16 7:38 ` Juan Quintela
2023-10-11 18:46 ` [PATCH RESEND 3/7] migration/ram: Remove RAMState from xbzrle_cache_zero_page Fabiano Rosas
2023-10-16 7:39 ` Juan Quintela
2023-10-11 18:46 ` [PATCH RESEND 4/7] migration/ram: Stop passing QEMUFile around in save_zero_page Fabiano Rosas
2023-10-16 7:40 ` Juan Quintela
2023-10-11 18:46 ` Fabiano Rosas [this message]
2023-10-11 18:46 ` [PATCH RESEND 6/7] migration/ram: Merge save_zero_page functions Fabiano Rosas
2023-10-11 18:46 ` [PATCH RESEND 7/7] tests/qtest: Re-enable multifd cancel test Fabiano Rosas
2023-10-12 7:42 ` Thomas Huth
2023-10-16 7:46 ` Juan Quintela
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=20231011184604.32364-6-farosas@suse.de \
--to=farosas@suse.de \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@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).