From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZI0T-0001XL-AD for qemu-devel@nongnu.org; Fri, 26 Feb 2016 08:00:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aZI0N-0007ce-Eo for qemu-devel@nongnu.org; Fri, 26 Feb 2016 08:00:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36809) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZI0N-0007cB-AF for qemu-devel@nongnu.org; Fri, 26 Feb 2016 08:00:23 -0500 Date: Fri, 26 Feb 2016 13:00:16 +0000 From: "Dr. David Alan Gilbert" Message-ID: <20160226130015.GE2161@work-vm> References: <1456108832-24212-1-git-send-email-zhang.zhanghailiang@huawei.com> <1456108832-24212-29-git-send-email-zhang.zhanghailiang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1456108832-24212-29-git-send-email-zhang.zhanghailiang@huawei.com> Subject: Re: [Qemu-devel] [PATCH COLO-Frame v15 28/38] migration/savevm: Export two helper functions for savevm process List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: zhanghailiang Cc: xiecl.fnst@cn.fujitsu.com, lizhijian@cn.fujitsu.com, quintela@redhat.com, armbru@redhat.com, yunhong.jiang@intel.com, eddie.dong@intel.com, peter.huangpeng@huawei.com, qemu-devel@nongnu.org, arei.gonglei@huawei.com, stefanha@redhat.com, amit.shah@redhat.com, zhangchen.fnst@cn.fujitsu.com, hongyang.yang@easystack.cn * zhanghailiang (zhang.zhanghailiang@huawei.com) wrote: > We add a new helper functions qemu_savevm_live_state(), > and make qemu_save_device_state() public. > > Signed-off-by: zhanghailiang > Signed-off-by: Li Zhijian Reviewed-by: Dr. David Alan Gilbert Again the extra function doesn't do much; but it's best to wrap teh explicit EOF byte in a savevm function. Dave > --- > v14: > - New patch split from previous > 'COLO: Separate the process of saving/loading ram and device state > --- > include/sysemu/sysemu.h | 3 +++ > migration/savevm.c | 15 +++++++++++---- > 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index c0694a1..7b1748c 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -133,6 +133,9 @@ void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, const char *name, > uint64_t *start_list, > uint64_t *length_list); > > +void qemu_savevm_live_state(QEMUFile *f); > +int qemu_save_device_state(QEMUFile *f); > + > int qemu_loadvm_state(QEMUFile *f); > int qemu_loadvm_state_begin(QEMUFile *f); > int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); > diff --git a/migration/savevm.c b/migration/savevm.c > index 954e0a7..60c7b57 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -1192,13 +1192,20 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp) > return ret; > } > > -static int qemu_save_device_state(QEMUFile *f) > +void qemu_savevm_live_state(QEMUFile *f) > { > - SaveStateEntry *se; > + /* save QEMU_VM_SECTION_END section */ > + qemu_savevm_state_complete_precopy(f, true); > + qemu_put_byte(f, QEMU_VM_EOF); > +} > > - qemu_put_be32(f, QEMU_VM_FILE_MAGIC); > - qemu_put_be32(f, QEMU_VM_FILE_VERSION); > +int qemu_save_device_state(QEMUFile *f) > +{ > + SaveStateEntry *se; > > + if (!migration_in_colo_state()) { > + qemu_savevm_state_header(f); > + } > cpu_synchronize_all_states(); > > QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { > -- > 1.8.3.1 > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK