From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> To: guangrong.xiao@gmail.com, quintela@redhat.com Cc: kvm@vger.kernel.org, mst@redhat.com, mtosatti@redhat.com, Xiao Guangrong <xiaoguangrong@tencent.com>, qemu-devel@nongnu.org, pbonzini@redhat.com Subject: Re: [PATCH 8/8] migration: remove ram_save_compressed_page() Date: Thu, 15 Mar 2018 12:32:29 +0000 [thread overview] Message-ID: <20180315123228.GH3062@work-vm> (raw) In-Reply-To: <20180313075739.11194-9-xiaoguangrong@tencent.com> * guangrong.xiao@gmail.com (guangrong.xiao@gmail.com) wrote: > 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 > > Signed-off-by: Xiao Guangrong <xiaoguangrong@tencent.com> Thanks, that does simplify stuff a lot in the end! Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > 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 / dgilbert@redhat.com / Manchester, UK
WARNING: multiple messages have this Message-ID (diff)
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> To: guangrong.xiao@gmail.com, quintela@redhat.com Cc: pbonzini@redhat.com, mst@redhat.com, mtosatti@redhat.com, Xiao Guangrong <xiaoguangrong@tencent.com>, qemu-devel@nongnu.org, kvm@vger.kernel.org Subject: Re: [Qemu-devel] [PATCH 8/8] migration: remove ram_save_compressed_page() Date: Thu, 15 Mar 2018 12:32:29 +0000 [thread overview] Message-ID: <20180315123228.GH3062@work-vm> (raw) In-Reply-To: <20180313075739.11194-9-xiaoguangrong@tencent.com> * guangrong.xiao@gmail.com (guangrong.xiao@gmail.com) wrote: > 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 > > Signed-off-by: Xiao Guangrong <xiaoguangrong@tencent.com> Thanks, that does simplify stuff a lot in the end! Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > 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 / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2018-03-15 12:32 UTC|newest] Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-13 7:57 [PATCH 0/8] migration: improve and cleanup compression guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-13 7:57 ` [PATCH 1/8] migration: stop compressing page in migration thread guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 10:25 ` Dr. David Alan Gilbert 2018-03-15 10:25 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-16 8:05 ` Xiao Guangrong 2018-03-16 8:05 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 12:11 ` Dr. David Alan Gilbert 2018-03-19 12:11 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-21 8:19 ` Peter Xu 2018-03-21 8:19 ` [Qemu-devel] " Peter Xu 2018-03-22 11:38 ` Xiao Guangrong 2018-03-22 11:38 ` [Qemu-devel] " Xiao Guangrong 2018-03-26 9:02 ` Peter Xu 2018-03-26 9:02 ` [Qemu-devel] " Peter Xu 2018-03-26 15:43 ` Xiao Guangrong 2018-03-26 15:43 ` [Qemu-devel] " Xiao Guangrong 2018-03-27 7:33 ` Peter Xu 2018-03-27 7:33 ` [Qemu-devel] " Peter Xu 2018-03-27 19:12 ` Dr. David Alan Gilbert 2018-03-27 19:12 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-28 3:01 ` Wang, Wei W 2018-03-28 3:01 ` [Qemu-devel] " Wang, Wei W 2018-03-27 15:24 ` Xiao Guangrong 2018-03-27 15:24 ` [Qemu-devel] " Xiao Guangrong 2018-03-28 7:30 ` Wei Wang 2018-03-28 7:30 ` [Qemu-devel] " Wei Wang 2018-03-28 7:37 ` Peter Xu 2018-03-28 7:37 ` [Qemu-devel] " Peter Xu 2018-03-28 8:30 ` Wei Wang 2018-03-28 8:30 ` [Qemu-devel] " Wei Wang 2018-03-13 7:57 ` [PATCH 2/8] migration: stop allocating and freeing memory frequently guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 11:03 ` Dr. David Alan Gilbert 2018-03-15 11:03 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-16 8:19 ` Xiao Guangrong 2018-03-16 8:19 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 10:54 ` Dr. David Alan Gilbert 2018-03-19 10:54 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-19 12:11 ` Xiao Guangrong 2018-03-19 12:11 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 1:49 ` [PATCH 2/8] migration: stop allocating and freeingmemory frequently jiang.biao2 2018-03-19 1:49 ` [Qemu-devel] " jiang.biao2 2018-03-19 4:03 ` Xiao Guangrong 2018-03-19 4:03 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 4:48 ` [PATCH 2/8] migration: stop allocating andfreeingmemory frequently jiang.biao2 2018-03-19 4:48 ` [Qemu-devel] " jiang.biao2 2018-03-21 9:06 ` [PATCH 2/8] migration: stop allocating and freeing memory frequently Peter Xu 2018-03-21 9:06 ` [Qemu-devel] " Peter Xu 2018-03-22 11:57 ` Xiao Guangrong 2018-03-22 11:57 ` [Qemu-devel] " Xiao Guangrong 2018-03-27 7:07 ` Peter Xu 2018-03-27 7:07 ` [Qemu-devel] " Peter Xu 2018-03-13 7:57 ` [PATCH 3/8] migration: support to detect compression and decompression errors guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 11:29 ` Dr. David Alan Gilbert 2018-03-15 11:29 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-16 8:25 ` Xiao Guangrong 2018-03-16 8:25 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 7:56 ` [PATCH 3/8] migration: support to detect compressionand " jiang.biao2 2018-03-19 7:56 ` [Qemu-devel] " jiang.biao2 2018-03-19 8:01 ` Xiao Guangrong 2018-03-19 8:01 ` [Qemu-devel] " Xiao Guangrong 2018-03-21 10:00 ` [PATCH 3/8] migration: support to detect compression and " Peter Xu 2018-03-21 10:00 ` [Qemu-devel] " Peter Xu 2018-03-22 12:03 ` Xiao Guangrong 2018-03-22 12:03 ` [Qemu-devel] " Xiao Guangrong 2018-03-27 7:22 ` Peter Xu 2018-03-27 7:22 ` [Qemu-devel] " Peter Xu 2018-03-26 19:42 ` Xiao Guangrong 2018-03-26 19:42 ` [Qemu-devel] " Xiao Guangrong 2018-03-27 11:17 ` Peter Xu 2018-03-27 11:17 ` [Qemu-devel] " Peter Xu 2018-03-27 1:20 ` Xiao Guangrong 2018-03-27 1:20 ` [Qemu-devel] " Xiao Guangrong 2018-03-28 0:43 ` [PATCH 3/8] migration: support to detectcompression " jiang.biao2 2018-03-28 0:43 ` [Qemu-devel] " jiang.biao2 2018-03-27 14:35 ` Xiao Guangrong 2018-03-27 14:35 ` [Qemu-devel] " Xiao Guangrong 2018-03-28 3:03 ` Peter Xu 2018-03-28 3:03 ` [Qemu-devel] " Peter Xu 2018-03-28 4:08 ` [PATCH 3/8] migration: support todetectcompression " jiang.biao2 2018-03-28 4:08 ` [Qemu-devel] " jiang.biao2 2018-03-28 4:20 ` Peter Xu 2018-03-28 4:20 ` [Qemu-devel] " Peter Xu 2018-03-27 18:44 ` Xiao Guangrong 2018-03-27 18:44 ` [Qemu-devel] " Xiao Guangrong 2018-03-28 8:07 ` [PATCH 3/8] migration: support todetectcompressionand " jiang.biao2 2018-03-28 8:07 ` [Qemu-devel] " jiang.biao2 2018-03-13 7:57 ` [PATCH 4/8] migration: introduce control_save_page() guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 11:37 ` Dr. David Alan Gilbert 2018-03-15 11:37 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-16 8:52 ` Xiao Guangrong 2018-03-16 8:52 ` [Qemu-devel] " Xiao Guangrong 2018-03-27 7:47 ` Peter Xu 2018-03-27 7:47 ` [Qemu-devel] " Peter Xu 2018-03-13 7:57 ` [PATCH 5/8] migration: move calling control_save_page to the common place guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 11:47 ` Dr. David Alan Gilbert 2018-03-15 11:47 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-16 8:59 ` Xiao Guangrong 2018-03-16 8:59 ` [Qemu-devel] " Xiao Guangrong 2018-03-19 13:15 ` Dr. David Alan Gilbert 2018-03-19 13:15 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-27 12:35 ` Peter Xu 2018-03-27 12:35 ` [Qemu-devel] " Peter Xu 2018-03-13 7:57 ` [PATCH 6/8] migration: move calling save_zero_page " guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 12:27 ` Dr. David Alan Gilbert 2018-03-15 12:27 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-27 12:49 ` Peter Xu 2018-03-27 12:49 ` [Qemu-devel] " Peter Xu 2018-03-13 7:57 ` [PATCH 7/8] migration: introduce save_normal_page() guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 12:30 ` Dr. David Alan Gilbert 2018-03-15 12:30 ` [Qemu-devel] " Dr. David Alan Gilbert 2018-03-27 12:54 ` Peter Xu 2018-03-27 12:54 ` [Qemu-devel] " Peter Xu 2018-03-13 7:57 ` [PATCH 8/8] migration: remove ram_save_compressed_page() guangrong.xiao 2018-03-13 7:57 ` [Qemu-devel] " guangrong.xiao 2018-03-15 12:32 ` Dr. David Alan Gilbert [this message] 2018-03-15 12:32 ` Dr. David Alan Gilbert 2018-03-27 12:56 ` Peter Xu 2018-03-27 12:56 ` [Qemu-devel] " Peter Xu
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=20180315123228.GH3062@work-vm \ --to=dgilbert@redhat.com \ --cc=guangrong.xiao@gmail.com \ --cc=kvm@vger.kernel.org \ --cc=mst@redhat.com \ --cc=mtosatti@redhat.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=quintela@redhat.com \ --cc=xiaoguangrong@tencent.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: linkBe 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.