| From e3c0812c4d61c956ac5b0641826c4e4fbda55954 Mon Sep 17 00:00:00 2001 |
| From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> |
| Date: Wed, 1 Aug 2018 13:55:14 +0100 |
| Subject: [PATCH 10/21] migration: remove ram_save_compressed_page() |
| |
| RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com> |
| Message-id: <20180801135522.11658-11-dgilbert@redhat.com> |
| Patchwork-id: 81578 |
| O-Subject: [qemu-kvm RHEL8/virt212 PATCH 10/18] migration: remove ram_save_compressed_page() |
| Bugzilla: 1594384 |
| RH-Acked-by: Peter Xu <peterx@redhat.com> |
| RH-Acked-by: John Snow <jsnow@redhat.com> |
| RH-Acked-by: Juan Quintela <quintela@redhat.com> |
| |
| From: Xiao Guangrong <xiaoguangrong@tencent.com> |
| |
| 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 |
| |
| Reviewed-by: Peter Xu <peterx@redhat.com> |
| Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> |
| Signed-off-by: Xiao Guangrong <xiaoguangrong@tencent.com> |
| Message-Id: <20180330075128.26919-11-xiaoguangrong@tencent.com> |
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> |
| (cherry picked from commit da3f56cb2e767016d3f204837a77caf35b463f90) |
| Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com> |
| |
| migration/ram.c | 45 ++++++++------------------------------------- |
| 1 file changed, 8 insertions(+), 37 deletions(-) |
| |
| diff --git a/migration/ram.c b/migration/ram.c |
| index 908879f..466609f 100644 |
| |
| |
| @@ -1186,41 +1186,6 @@ static int compress_page_with_multi_thread(RAMState *rs, RAMBlock *block, |
| } |
| |
| /** |
| - * 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. |
| * |
| @@ -1519,8 +1484,14 @@ static int ram_save_target_page(RAMState *rs, PageSearchStatus *pss, |
| return res; |
| } |
| |
| - if (save_page_use_compression(rs)) { |
| - return 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); |
| } |
| |
| return ram_save_page(rs, pss, last_stage); |
| -- |
| 1.8.3.1 |
| |