From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Xu Subject: Re: [PATCH 6/8] migration: move calling save_zero_page to the common place Date: Tue, 27 Mar 2018 20:49:31 +0800 Message-ID: <20180327124931.GP17789@xz-mi> References: <20180313075739.11194-1-xiaoguangrong@tencent.com> <20180313075739.11194-7-xiaoguangrong@tencent.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: kvm@vger.kernel.org, mst@redhat.com, mtosatti@redhat.com, Xiao Guangrong , qemu-devel@nongnu.org, pbonzini@redhat.com To: guangrong.xiao@gmail.com Return-path: Content-Disposition: inline In-Reply-To: <20180313075739.11194-7-xiaoguangrong@tencent.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel2=m.gmane.org@nongnu.org Sender: "Qemu-devel" List-Id: kvm.vger.kernel.org On Tue, Mar 13, 2018 at 03:57:37PM +0800, guangrong.xiao@gmail.com wrote: > From: Xiao Guangrong > > save_zero_page() is always our first approach to try, move it to > the common place before calling ram_save_compressed_page > and ram_save_page > > Signed-off-by: Xiao Guangrong > --- > migration/ram.c | 106 ++++++++++++++++++++++++++++++++------------------------ > 1 file changed, 60 insertions(+), 46 deletions(-) > > diff --git a/migration/ram.c b/migration/ram.c > index 839665d866..9627ce18e9 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -1021,15 +1021,8 @@ static int ram_save_page(RAMState *rs, PageSearchStatus *pss, bool last_stage) > trace_ram_save_page(block->idstr, (uint64_t)offset, p); > > XBZRLE_cache_lock(); > - pages = save_zero_page(rs, block, offset); > - if (pages > 0) { > - /* Must let xbzrle know, otherwise a previous (now 0'd) cached > - * page would be stale > - */ > - xbzrle_cache_zero_page(rs, current_addr); > - ram_release_pages(block->idstr, offset, pages); > - } else if (!rs->ram_bulk_stage && > - !migration_in_postcopy() && migrate_use_xbzrle()) { > + if (!rs->ram_bulk_stage && !migration_in_postcopy() && > + migrate_use_xbzrle()) { Nit: indent problem? [...] > +static bool save_page_use_compression(RAMState *rs) > +{ > + if (!migrate_use_compression()) { > + return false; > + } > + > + /* > + * If xbzrle is on, stop using the data compression after first > + * round of migration even if compression is enabled. In theory, > + * xbzrle can do better than compression. > + */ > + if (rs->ram_bulk_stage || !migrate_use_xbzrle()) { > + return true; > + } > + > + return false; > + Nit: remove this line? Otherwise I'd say I like this patch... :) Better with the nit fixed: Reviewed-by: Peter Xu Thanks, -- Peter Xu