From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60516) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzOVn-0005gv-Eb for qemu-devel@nongnu.org; Wed, 17 Jul 2013 05:59:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UzOVl-0004i5-Ux for qemu-devel@nongnu.org; Wed, 17 Jul 2013 05:59:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40221) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzOVl-0004ht-NN for qemu-devel@nongnu.org; Wed, 17 Jul 2013 05:59:05 -0400 Message-ID: <51E66ACD.70706@redhat.com> Date: Wed, 17 Jul 2013 11:58:37 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1373885375-13601-1-git-send-email-pl@kamp.de> <1373885375-13601-5-git-send-email-pl@kamp.de> <20130717084648.GD2458@dhcp-200-207.str.redhat.com> In-Reply-To: <20130717084648.GD2458@dhcp-200-207.str.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/4] qemu-img: conditionally discard target on convert List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: ronniesahlberg@gmail.com, Peter Lieven , qemu-devel@nongnu.org, stefanha@redhat.com Il 17/07/2013 10:46, Kevin Wolf ha scritto: > Am 15.07.2013 um 12:49 hat Peter Lieven geschrieben: >> if a destination has has_zero_init = 0, but it supports >> discard zeroes use discard to convert the target >> into an all zero device. >> >> Signed-off-by: Peter Lieven > > Wouldn't it be better to use bdrv_write_zeroes() and extend the > implementation of that to use discard internally in those block drivers > where it makes sense? > > Because here you're not really discarding (i.e. don't care about the > sectors any more), but you want them to be zeroed. I thought the same yesterday when reviewing the series, but I'm not convinced. Discarding is not always the right way to write zeroes, because it can disrupt performance. It may be fine when you are already going to write a sparse image (as is the case for qemu-img convert), but not in general. So if you just used write_zeroes, it would have to fall under yet another -drive option (or an extension to "-drive discard"). I think what Peter did is a good compromise in the end. BTW, Peter and Ronnie: we were assuming that UNMAP with LBPRZ=1 always zeroes blocks, but is that true for unaligned operations? Paolo