From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHu3F-0007vq-T1 for qemu-devel@nongnu.org; Mon, 24 Feb 2014 06:50:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WHu36-0000LC-MY for qemu-devel@nongnu.org; Mon, 24 Feb 2014 06:50:25 -0500 Received: from mx.ipv6.kamp.de ([2a02:248:0:51::16]:36174 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHu36-0000Kn-Bu for qemu-devel@nongnu.org; Mon, 24 Feb 2014 06:50:16 -0500 Message-ID: <530B31E9.6030501@kamp.de> Date: Mon, 24 Feb 2014 12:50:01 +0100 From: Peter Lieven MIME-Version: 1.0 References: <1393074022-32388-1-git-send-email-pl@kamp.de> <20140224101152.GE3775@dhcp-200-207.str.redhat.com> <530B1E3D.8050204@kamp.de> <530B2143.1030808@redhat.com> In-Reply-To: <530B2143.1030808@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH] block: optimize zero writes with bdrv_write_zeroes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Kevin Wolf Cc: qemu-devel@nongnu.org, stefanha@redhat.com, mreitz@redhat.com On 24.02.2014 11:38, Paolo Bonzini wrote: > Il 24/02/2014 11:26, Peter Lieven ha scritto: >> >> I personally do not need this for QCOW2 but for iSCSI. Here the optimization >> is basically saved bandwidth since a zero write becomes a WRITESAME. > > It saves bandwidth, but at the potential cost of extra host CPU utilization. I would be fine with having this automatically, but drv->bdrv_co_write_zeroes is not the right check because it is true for qcow2 and raw formats. Something using > bdrv_get_info is probably better, because it would have fewer or no false positives. > >> In all cases if unmap=on it would additionally save disk space. > > It would also cause worse performance though. I think the automatic addition BDRV_REQ_MAY_UNMAP is what should be a separate option. Perhaps you can have a three-state option, detect-zeros=no/yes/unmap. I think this is the best option to start with and default it to no for the beginning. Peter