From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46657) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpAjO-0004a3-WC for qemu-devel@nongnu.org; Wed, 28 Sep 2016 05:00:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpAjI-0007zX-Gx for qemu-devel@nongnu.org; Wed, 28 Sep 2016 05:00:46 -0400 References: <1474893981-5302-1-git-send-email-vsementsov@virtuozzo.com> <27bd2bc9-b879-81ef-c7b6-31335e6be84f@virtuozzo.com> <912490881.3041685.1474971311025.JavaMail.zimbra@redhat.com> <61b997ac-f9b9-37a2-6a0b-412ad77ddedd@virtuozzo.com> <2133222015.3059876.1474978044995.JavaMail.zimbra@redhat.com> <2c6d5867-3f0b-3ae6-3d3c-7b515243f39a@virtuozzo.com> <20160928083415.GC5236@noname.redhat.com> <20160928085655.GE5236@noname.redhat.com> From: Vladimir Sementsov-Ogievskiy Message-ID: <57EB86A2.6030000@virtuozzo.com> Date: Wed, 28 Sep 2016 12:00:18 +0300 MIME-Version: 1.0 In-Reply-To: <20160928085655.GE5236@noname.redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] proto: add 'shift' extension. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf , "Denis V. Lunev" Cc: Paolo Bonzini , qemu-devel@nongnu.org, qemu-block@nongnu.org, nbd-general@lists.sourceforge.net, alex@alex.org.uk, eblake@redhat.com, stefanha@redhat.com, w@uter.be, mreitz@redhat.com On 28.09.2016 11:56, Kevin Wolf wrote: > Am 28.09.2016 um 10:37 hat Denis V. Lunev geschrieben: >> On 09/28/2016 11:34 AM, Kevin Wolf wrote: >>> Am 27.09.2016 um 20:59 hat Denis V. Lunev geschrieben: >>>> On 09/27/2016 08:04 PM, Paolo Bonzini wrote: >>>>> On 27/09/2016 15:28, Denis V. Lunev wrote: >>>>>> On 09/27/2016 03:07 PM, Paolo Bonzini wrote: >>>>>>> ----- Original Message ----- >>>>>>>> From: "Denis V. Lunev" >>>>>>>> To: "Paolo Bonzini" >>>>>>>> Cc: "Vladimir Sementsov-Ogievskiy" , qemu-devel@nongnu.org, qemu-block@nongnu.org, >>>>>>>> nbd-general@lists.sourceforge.net, alex@alex.org.uk, eblake@redhat.com, kwolf@redhat.com, stefanha@redhat.com, >>>>>>>> w@uter.be >>>>>>>> Sent: Tuesday, September 27, 2016 12:25:54 PM >>>>>>>> Subject: Re: [PATCH] proto: add 'shift' extension. >>>>>>>> >>>>>>>> On 09/27/2016 01:15 PM, Paolo Bonzini wrote: >>>>>>>>>> We could go in a different direction and export flag >>>>>>>>>> 'has_zero_init' which will report that the storage is >>>>>>>>>> initialized with all zeroes at the moment. In this >>>>>>>>>> case mirroring code will not fall into this >>>>>>>>>> branch. >>>>>>>>> Why don't you add the zero_init flag to QEMU's NBD driver instead? >>>>>>>> for all cases without knowing real backend on the server side? >>>>>>>> I think this would be wrong. >>>>>>> Add it to the command line, and leave it to libvirt or the user to >>>>>>> pass "-drive file.driver=nbd,...,file.zero-init=on". >>>>>> I have started with something very similar for 'drive-mirror' command. >>>>>> We have added additional flag for this to improve migration speed >>>>>> and this was rejected. >>>>> You can add it through the filename path too, through a URI option >>>>> "nbd://...?zero-init=on". >>>>> >>>>> Paolo >>>> ha, cool idea! Thanks! >>> What's the advantage of writing "?zero-init=on" instead of >>> ",zero-init=on"? Doesn't it only add more string parsing code for no >>> benefit? >>> >>> Kevin >> Here I appreciate the idea to pass command line options in the >> target file name. Will it be performed via comma or '?' - there >> is no difference for us. We will check and use what is already >> implemented. >> >> The most important for us is an approach. > For me, too. With commas it's not part of the file name that must be > parsed out of the string, but a separate option, which is the much > cleaner approach. > > The good thing is that the conversion of NBD to individual options has > progressed far enough that you wouldn't even be able to implement the > URL extension without implementing the separate option, too. :-) > (Because all the URL parser does is splitting the URL into individual > options before passing them to nbd_open().) > > Kevin Just note: we can use json instead of url, like this: virsh qemu-monitor-command backup-vm '{"execute":"drive-backup","arguments":{"device": "disk", "target": "json://{\"driver\":\"nbd\",\"host\":\"127.0.0.1\",\"port\":\"10809\",\"zero-init\":\"on\"}", "mode": "existing", "sync": "full"}}' -- Best regards, Vladimir