From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38338) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZpA4v-00082B-6w for qemu-devel@nongnu.org; Thu, 22 Oct 2015 03:14:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZpA4r-0004eF-UG for qemu-devel@nongnu.org; Thu, 22 Oct 2015 03:14:25 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:5328) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZpA4r-0004cn-5T for qemu-devel@nongnu.org; Thu, 22 Oct 2015 03:14:21 -0400 References: <1441182199-8328-1-git-send-email-zhang.zhanghailiang@huawei.com> <1441182199-8328-10-git-send-email-zhang.zhanghailiang@huawei.com> <5627823F.8070907@redhat.com> From: zhanghailiang Message-ID: <56288C7F.2030300@huawei.com> Date: Thu, 22 Oct 2015 15:13:03 +0800 MIME-Version: 1.0 In-Reply-To: <5627823F.8070907@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH COLO-Frame v9 09/32] COLO: Implement colo checkpoint protocol List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake , qemu-devel@nongnu.org Cc: lizhijian@cn.fujitsu.com, quintela@redhat.com, yunhong.jiang@intel.com, eddie.dong@intel.com, peter.huangpeng@huawei.com, dgilbert@redhat.com, arei.gonglei@huawei.com, stefanha@redhat.com, amit.shah@redhat.com, yanghy@cn.fujitsu.com On 2015/10/21 20:17, Eric Blake wrote: > On 09/02/2015 02:22 AM, zhanghailiang wrote: >> We need communications protocol of user-defined to control the checkpoint >> process. >> >> The new checkpoint request is started by Primary VM, and the interactive process >> like below: >> Checkpoint synchronizing points, >> >> Primary Secondary >> 'checkpoint-request' @ -----------------------------> >> Suspend (In hybrid mode) >> 'checkpoint-reply' <------------------------------ @ >> Suspend&Save state >> 'vmstate-send' @ -----------------------------> >> Send state Receive state >> 'vmstate-received' <------------------------------ @ >> Release packets Load state >> 'vmstate-load' <------------------------------ @ >> Resume Resume (In hybrid mode) >> >> Start Comparing (In hybrid mode) >> NOTE: >> 1) '@' who sends the message >> 2) Every sync-point is synchronized by two sides with only >> one handshake(single direction) for low-latency. >> If more strict synchronization is required, a opposite direction >> sync-point should be added. >> 3) Since sync-points are single direction, the remote side may >> go forward a lot when this side just receives the sync-point. >> 4) For now, we only support 'periodic' checkpoint, for which >> the Secondary VM is not running, later we will support 'hybrid' mode. >> >> Signed-off-by: zhanghailiang >> Signed-off-by: Yang Hongyang >> Signed-off-by: Li Zhijian >> Signed-off-by: Gonglei >> --- >> migration/colo.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- >> qapi-schema.json | 26 ++++++++ >> trace-events | 3 +- >> 3 files changed, 218 insertions(+), 3 deletions(-) > > Just a qapi review: > > >> +++ b/qapi-schema.json >> @@ -664,6 +664,32 @@ >> '*tls-port': 'int', '*cert-subject': 'str' } } >> >> ## >> +# @COLOCmd > > Any reason this can't be COLOCommand? We tend to avoid abbreviations in > the public interface, although arguably type names are not ABI. > No special reason, will rename it in next version. :) >> +# >> +# The colo command >> +# >> +# @invalid: unknown command >> +# >> +# @checkpoint-ready: SVM is ready for checkpointing >> +# >> +# @checkpoint-request: PVM tells SVM to prepare for new checkpointing >> +# >> +# @checkpoint-reply: SVM gets PVM's checkpoint request >> +# >> +# @vmstate-send: VM's state will be sent by PVM. >> +# >> +# @vmstate-received: VM's state has been received by SVM >> +# >> +# @vmstate-loaded: VM's state has been loaded by SVM > > 7 documentation strings... > >> +# >> +# Since: 2.5 >> +## >> +{ 'enum': 'COLOCmd', >> + 'data': [ 'invalid', 'checkpoint-ready', 'checkpoint-request', >> + 'checkpoint-reply', 'vmstate-send', 'vmstate-size', >> + 'vmstate-received', 'vmstate-loaded', 'guest-shutdown', >> + 'ram-steal'] } > > ...10 enum values. Missing vmstate-size, guest-shutdown, ram-steal. > Yes, this is a mistake, these three values shouldn't be added in this patch, we didn't refer to them in this patch, they should appear in the later corresponding patch. I will fix it in next version. Thanks, zhanghailiang