From nobody Sat Apr 12 01:25:42 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1593768828; cv=none; d=zohomail.com; s=zohoarc; b=HGdcpLhtWdM+jtGEJYaJC2oMuL+/0ZR66Ezbn0H0EtkJyYRB3mSbSKtuTd+iDWI3luewvBIeCkTrn0dy7nL+Gd3joX+twCzfekzatMtX6Y+HsouXYkOhKi/pmozv2j/22y0/q8RlCtp7h+h4xIpVwRUu8u2R/9PtXyOHFwc59HE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593768828; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+S9tTJk1IxSdz5YwHi6iSjVuasfOW43kaU5vR3AlBUY=; b=RCrn688N0+tD27tK5QpTp2+9l/RxFVOQYtXVDfAEzkKLlSpmv/GHw2X+WJl2EpEsHv0HxqDUyEtzGZJ6dSoerB2qQPOmlaPbCCrQCJwlxeMnHHaEkWSxDWHMb0GE9TtoXY2IHgPE30QHnwNRu4EPkQnmFOKgEp2lCaj246pxjT0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593768828343685.9778409499522; Fri, 3 Jul 2020 02:33:48 -0700 (PDT) Received: from localhost ([::1]:44102 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jrI4p-0002z8-3b for importer@patchew.org; Fri, 03 Jul 2020 05:33:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jrHtO-0002jk-Fn for qemu-devel@nongnu.org; Fri, 03 Jul 2020 05:21:58 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:41432 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jrHtM-0000x2-FS for qemu-devel@nongnu.org; Fri, 03 Jul 2020 05:21:58 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-446-AYOqNz39Mq61g2xmKglc2A-1; Fri, 03 Jul 2020 05:21:53 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A7BB8A0BD7; Fri, 3 Jul 2020 09:21:52 +0000 (UTC) Received: from linux.fritz.box.com (ovpn-114-90.ams2.redhat.com [10.36.114.90]) by smtp.corp.redhat.com (Postfix) with ESMTP id B5B5C7AC63; Fri, 3 Jul 2020 09:21:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593768115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+S9tTJk1IxSdz5YwHi6iSjVuasfOW43kaU5vR3AlBUY=; b=ODR8mKDcDIXWAqt0havc8SW3xF6jUXBDODj9mvPndDziy48yGg8u4txb3LF+I2rZvORJ4O lt/gh9PWZo3teaFKM45bR3/2lbMlopJxm7F9sedEwAsJul27BYq9Yjx8tUXOG1RMm/EbVZ dFzBjv/Ef939C4aq/fOd3yMxiR8zgGM= X-MC-Unique: AYOqNz39Mq61g2xmKglc2A-1 From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PULL 1/7] qemu-img convert: Don't pre-zero images Date: Fri, 3 Jul 2020 11:21:37 +0200 Message-Id: <20200703092143.165594-2-kwolf@redhat.com> In-Reply-To: <20200703092143.165594-1-kwolf@redhat.com> References: <20200703092143.165594-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kwolf@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.120; envelope-from=kwolf@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/03 03:38:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Since commit 5a37b60a61c, qemu-img create will pre-zero the target image if it isn't already zero-initialised (most importantly, for host block devices, but also iscsi etc.), so that writing explicit zeros wouldn't be necessary later. This could speed up the operation significantly, in particular when the source image file was only sparsely populated. However, it also means that some block are written twice: Once when pre-zeroing them, and then when they are overwritten with actual data. On a full image, the pre-zeroing is wasted work because everything will be overwritten. In practice, write_zeroes typically turns out faster than writing explicit zero buffers, but slow enough that first zeroing everything and then overwriting parts can be a significant net loss. Meanwhile, qemu-img convert was rewritten in 690c7301600 and zero blocks are now written to the target using bdrv_co_pwrite_zeroes() if the target could be pre-zeroed. This way we already make use of the faster write_zeroes operation, but avoid writing any blocks twice. Remove the pre-zeroing because these days this former optimisation has actually turned into a pessimisation in the common case. Reported-by: Nir Soffer Signed-off-by: Kevin Wolf Message-Id: <20200622151203.35624-1-kwolf@redhat.com> Tested-by: Nir Soffer Reviewed-by: Eric Blake Signed-off-by: Kevin Wolf --- qemu-img.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index d7e846e607..bdb9f6aa46 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -2084,15 +2084,6 @@ static int convert_do_copy(ImgConvertState *s) s->has_zero_init =3D bdrv_has_zero_init(blk_bs(s->target)); } =20 - if (!s->has_zero_init && !s->target_has_backing && - bdrv_can_write_zeroes_with_unmap(blk_bs(s->target))) - { - ret =3D blk_make_zero(s->target, BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_= FALLBACK); - if (ret =3D=3D 0) { - s->has_zero_init =3D true; - } - } - /* Allocate buffer for copied data. For compressed images, only one cl= uster * can be copied at a time. */ if (s->compressed) { --=20 2.25.4