From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50178) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XRk9U-0002WV-GE for qemu-devel@nongnu.org; Wed, 10 Sep 2014 11:49:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XRk9P-0001SU-Hr for qemu-devel@nongnu.org; Wed, 10 Sep 2014 11:49:48 -0400 Received: from dew.nodalink.com ([95.130.14.197]:43177) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XRk9P-0001SI-Au for qemu-devel@nongnu.org; Wed, 10 Sep 2014 11:49:43 -0400 Date: Wed, 10 Sep 2014 15:49:38 +0000 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140910154938.GC30703@nodalink.com> References: <1408723870-7826-2-git-send-email-benoit.canet@nodalink.com> <20140825060424.GA17482@T430.nay.redhat.com> <20140825090611.GA18202@nodalink.com> <20140825093737.GA25434@T430.nay.redhat.com> <20140825121219.GB18202@nodalink.com> <20140826044204.GB2517@T430.nay.redhat.com> <20140826064554.GA13982@nodalink.com> <20140904204256.GF25226@stefanha-thinkpad.redhat.com> <20140910085419.GB26233@fam-t430.nay.redhat.com> <54106ADB.7060205@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54106ADB.7060205@redhat.com> Subject: Re: [Qemu-devel] [PATCH] block: Make op blockers recursive List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: kwolf@redhat.com, Fam Zheng , Stefan Hajnoczi , jcody@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, =?iso-8859-1?Q?Beno=EEt?= Canet On Wed, Sep 10, 2014 at 09:14:35AM -0600, Eric Blake wrote: > On 09/10/2014 02:54 AM, Fam Zheng wrote: > > >> Let's think of a situation that recursive blockers protect but > >> backing_blocker does not: > >> > >> a <- b <- c <- d > >> > >> c is the backing file and is therefore protected by the op blocker. > >> > >> The block-commit command works with node-names, however, so we can > >> manipulate any nodes in the graph, not just the topmost one. Try this: > >> > >> block-commit d > >> block-commit b > >> > >> I haven't checked yet but I suspect it will launch two block-commit jobs > >> on the same partial chain (that's a bad thing because it can lead to > >> corruption). > > > > 1) Does block-commit work with node-names already? In other words, is > > block-commit b possible now? I only see drive-mirror works with it, but not > > drive-backup, block-mirror or block-commit. > > IIRC, Jeff Cody proposed patches for qemu 2.1 that would have done this, > but we dropped them for that release in order to get the recursive > blockers sorted out first. > > > > > 2) Regardless of the answer to 1), I think we could use a similar approach as > > drive-backup here: split BLOCK_OP_TYPE_COMMIT to > > BLOCK_OP_TYPE_COMMIT_{SOURCE,TARGET}, and only unblock > > BLOCK_OP_TYPE_COMMIT_TARGET in bdrv_set_backing_hd. > > In that earlier thread, Jeff had some ideas that it is not so much the > operation name that should be the blocker, but the lower-level action(s) > implied by each operation (read metadata, write metadata, read image, > write image) Does it mean I should pause this current series and task switch to another infrastucture task ? I could switch to the block I/O accouting work. What does the other developpers and maintainers think about it ? > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >