[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 8/8] migration: remove ram_save_compressed_page(
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH 8/8] migration: remove ram_save_compressed_page() |
Date: |
Thu, 15 Mar 2018 12:32:29 +0000 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
* address@hidden (address@hidden) wrote:
> From: Xiao Guangrong <address@hidden>
>
> Now, we can reuse the path in ram_save_page() to post the page out
> as normal, then the only thing remained in ram_save_compressed_page()
> is compression that we can move it out to the caller
>
> Signed-off-by: Xiao Guangrong <address@hidden>
Thanks, that does simplify stuff a lot in the end!
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> migration/ram.c | 45 ++++++++-------------------------------------
> 1 file changed, 8 insertions(+), 37 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index f778627992..8f4f8aca86 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -1162,41 +1162,6 @@ static int compress_page_with_multi_thread(RAMState
> *rs, RAMBlock *block,
> return pages;
> }
>
> -/**
> - * ram_save_compressed_page: compress the given page and send it to the
> stream
> - *
> - * Returns the number of pages written.
> - *
> - * @rs: current RAM state
> - * @block: block that contains the page we want to send
> - * @offset: offset inside the block for the page
> - * @last_stage: if we are at the completion stage
> - */
> -static int ram_save_compressed_page(RAMState *rs, PageSearchStatus *pss,
> - bool last_stage)
> -{
> - int pages = -1;
> - uint8_t *p;
> - RAMBlock *block = pss->block;
> - ram_addr_t offset = pss->page << TARGET_PAGE_BITS;
> -
> - p = block->host + offset;
> -
> - if (block != rs->last_sent_block) {
> - /*
> - * Make sure the first page is sent out before other pages.
> - *
> - * we post it as normal page as compression will take much
> - * CPU resource.
> - */
> - pages = save_normal_page(rs, block, offset, p, true);
> - } else {
> - pages = compress_page_with_multi_thread(rs, block, offset);
> - }
> -
> - return pages;
> -}
> -
> /**
> * find_dirty_block: find the next dirty page and update any state
> * associated with the search process.
> @@ -1501,8 +1466,14 @@ static int ram_save_target_page(RAMState *rs,
> PageSearchStatus *pss,
> goto page_saved;
> }
>
> - if (save_page_use_compression(rs)) {
> - res = ram_save_compressed_page(rs, pss, last_stage);
> + /*
> + * Make sure the first page is sent out before other pages.
> + *
> + * we post it as normal page as compression will take much
> + * CPU resource.
> + */
> + if (block == rs->last_sent_block && save_page_use_compression(rs)) {
> + res = compress_page_with_multi_thread(rs, block, offset);
> } else {
> res = ram_save_page(rs, pss, last_stage);
> }
> --
> 2.14.3
>
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [PATCH 5/8] migration: move calling control_save_page to the common place, (continued)
Re: [Qemu-devel] [PATCH 5/8] migration: move calling control_save_page to the common place, Peter Xu, 2018/03/27
[Qemu-devel] [PATCH 6/8] migration: move calling save_zero_page to the common place, guangrong . xiao, 2018/03/13
[Qemu-devel] [PATCH 7/8] migration: introduce save_normal_page(), guangrong . xiao, 2018/03/13
[Qemu-devel] [PATCH 8/8] migration: remove ram_save_compressed_page(), guangrong . xiao, 2018/03/13