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: Re: [PATCH 3/5] migration/ram: Move xbzrle zero page handling into save_zero_page
Date: Tue, 15 Aug 2023 20:30:30 -0300 [thread overview]
Message-ID: <87wmxvlw89.fsf@suse.de> (raw)
In-Reply-To: <20230815143828.15436-4-farosas@suse.de>
Fabiano Rosas <farosas@suse.de> writes:
> It makes a bit more sense to have the zero page handling of xbzrle
> right where we save the zero page.
>
> This also makes save_zero_page() follow the same format as
> save_compress_page() at the top level of
> ram_save_target_page_legacy().
>
> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> ---
> migration/ram.c | 27 +++++++++++++++------------
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index 761f43dc34..a10410a1a5 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -1159,11 +1159,12 @@ 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);
> @@ -1171,6 +1172,17 @@ static int save_zero_page(PageSearchStatus *pss, RAMBlock *block,
> if (len) {
> 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;
> }
> return -1;
> @@ -2141,17 +2153,8 @@ static int ram_save_target_page_legacy(RAMState *rs, PageSearchStatus *pss)
> return 1;
> }
>
> - res = save_zero_page(pss, block, offset);
> - if (res > 0) {
These two subtractions should be in patch 5.
> - /* 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;
> + if (save_zero_page(rs, pss, block, offset)) {
> + return 1;
These two additions should be in patch 5.
> }
>
> /*
next prev parent reply other threads:[~2023-08-15 23:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-15 14:38 [PATCH 0/5] migration/ram: Merge zero page handling Fabiano Rosas
2023-08-15 14:38 ` [PATCH 1/5] migration/ram: Remove RAMState from xbzrle_cache_zero_page Fabiano Rosas
2023-08-15 22:20 ` Peter Xu
2023-08-15 14:38 ` [PATCH 2/5] migration/ram: Stop passing QEMUFile around in save_zero_page Fabiano Rosas
2023-08-15 22:22 ` Peter Xu
2023-08-15 14:38 ` [PATCH 3/5] migration/ram: Move xbzrle zero page handling into save_zero_page Fabiano Rosas
2023-08-15 22:25 ` Peter Xu
2023-08-15 23:30 ` Fabiano Rosas [this message]
2023-08-15 14:38 ` [PATCH 4/5] migration/ram: Return early from save_zero_page Fabiano Rosas
2023-08-15 22:26 ` Peter Xu
2023-08-15 14:38 ` [PATCH 5/5] migration/ram: Merge save_zero_page functions Fabiano Rosas
2023-08-15 22:32 ` Peter Xu
2023-08-15 23:28 ` Fabiano Rosas
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=87wmxvlw89.fsf@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.