From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59667) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZyaXU-000427-J0 for qemu-devel@nongnu.org; Tue, 17 Nov 2015 02:18:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZyaXQ-0000Yd-CW for qemu-devel@nongnu.org; Tue, 17 Nov 2015 02:18:52 -0500 Received: from szxga03-in.huawei.com ([119.145.14.66]:38406) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZyaXO-0000WG-NM for qemu-devel@nongnu.org; Tue, 17 Nov 2015 02:18:48 -0500 References: <1446551816-15768-1-git-send-email-zhang.zhanghailiang@huawei.com> <1446551816-15768-10-git-send-email-zhang.zhanghailiang@huawei.com> <564613C8.9040904@redhat.com> From: zhanghailiang Message-ID: <564AD178.5040505@huawei.com> Date: Tue, 17 Nov 2015 15:04:24 +0800 MIME-Version: 1.0 In-Reply-To: <564613C8.9040904@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH COLO-Frame v10 09/38] 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 On 2015/11/14 0:46, Eric Blake wrote: > On 11/03/2015 04:56 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: Li Zhijian >> Signed-off-by: Gonglei >> Cc: Eric Blake >> --- >> v10: >> - Rename enum COLOCmd to COLOCommand (Eric's suggestion). >> - Remove unused 'ram-steal' > > Interface review only: > > >> +++ b/qapi-schema.json >> @@ -702,6 +702,33 @@ >> '*tls-port': 'int', '*cert-subject': 'str' } } >> >> ## >> +# @COLOCommand >> +# >> +# The colo command > > Still might be nice to spell out what COLO means here, but it's fairly > obvious this will be related to anything else COLO, so I'm not too worried. > Hmm, i think the best way to solve the abbreviation problem is to give the full name where it appears for the first time ;) >> +# >> +# @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-size: The total size of VMstate. >> +# >> +# @vmstate-received: VM's state has been received by SVM >> +# >> +# @vmstate-loaded: VM's state has been loaded by SVM >> +# >> +# Since: 2.5 > > Will need a tweak to say 2.6. Otherwise looks okay. > OK, i will update it. Thanks. >> +## >> +{ 'enum': 'COLOCommand', >> + 'data': [ 'invalid', 'checkpoint-ready', 'checkpoint-request', >> + 'checkpoint-reply', 'vmstate-send', 'vmstate-size', >> + 'vmstate-received', 'vmstate-loaded' ] } >> + > >