From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfBT3-0003hR-RW for qemu-devel@nongnu.org; Thu, 14 Jun 2012 10:56:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SfBSx-0003Q4-BJ for qemu-devel@nongnu.org; Thu, 14 Jun 2012 10:56:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:8541) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfBSx-0003PQ-2w for qemu-devel@nongnu.org; Thu, 14 Jun 2012 10:56:07 -0400 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q5EEu51U011161 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 14 Jun 2012 10:56:05 -0400 Message-ID: <4FD9FB83.8050208@redhat.com> Date: Thu, 14 Jun 2012 16:56:03 +0200 From: Pavel Hrdina MIME-Version: 1.0 References: <806c66b2f071f03bec0b7d45a71512e394386885.1339617170.git.phrdina@redhat.com> <4FD9D67F.5080505@redhat.com> In-Reply-To: <4FD9D67F.5080505@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] qapi: converted commit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: kwolf@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com On 06/14/2012 02:18 PM, Eric Blake wrote: > On 06/14/2012 01:35 AM, Pavel Hrdina wrote: >> Signed-off-by: Pavel Hrdina >> --- >> +++ b/qapi-schema.json >> @@ -1169,6 +1169,21 @@ >> { 'command': 'block_resize', 'data': { 'device': 'str', 'size': 'int' }} >> >> ## >> +# @commit >> +# >> +# Commit changes to the disk images (if -snapshot is used) or backing files. >> +# >> +# @device: the name of the device or the "all" to commit all devices >> +# >> +# Returns: nothing on success >> +# If @device is not a valid block device, DeviceNotFound >> +# If a long-running operation is using the device, DeviceInUse >> +# >> +# Since: 1.2 >> +## >> +{ 'command': 'commit', 'data': { 'device': 'str' }} > Should we use this as an opportunity to make the command more powerful? > For example, integrating this with the 'transaction' command or a block > job queried by 'query-block-jobs' to track its progress would be useful. > Also, suppose I have A<- B<- C. Does 'commit' only do one layer (C > into B), or all layers (B and C into A)? That argues that we need an > optional parameter that says how deep to commit (committing C into B > only to repeat and commit B into A is more time-consuming than directly > committing both B and C into A to start with). When a commit is > complete, which file is backing the device - is it still C (which > continues to diverge, but now from the point of the commit) or does qemu > pivot things to have the device now backed by B (and C can be discarded, > particularly true if changes are now going into B which invalidate C). What i find out is that 'commit' will commit changes only from C to B and qemu continues with C from the new commit point. I couldn't find a way to commit changes and go back to backing file. This should be supported by parameter and also as you mention that commit all changes through all snapshots should be supported by another parameter. The 'transaction' feature would be nice to have too. Pavel