From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=56629 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Owddo-000093-0L for qemu-devel@nongnu.org; Fri, 17 Sep 2010 12:18:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Owddj-0001Ve-P6 for qemu-devel@nongnu.org; Fri, 17 Sep 2010 12:18:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:31232) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Owddj-0001VV-Gi for qemu-devel@nongnu.org; Fri, 17 Sep 2010 12:18:19 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o8HGII93017052 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 17 Sep 2010 12:18:18 -0400 From: Kevin Wolf Date: Fri, 17 Sep 2010 18:18:34 +0200 Message-Id: <1284740318-20838-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 0/4] qcow2: Save another common flush List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com For copy on write (this includes any cluster allocations that don't fill the whole cluster with one request), what qcow2 does looks like this: 1. Allocate new clusters (increase refcounts) 2. bdrv_flush 3. Copy sectors before the first touched one 4. bdrv_flush 5. Copy sectors after the last touched one 6. bdrv_flush 7. Update the L2 table to point to the new clusters Step 2 and 4 are not necessary. This series moves flushes around to get all of these three bdrv_flush calls merged into one. Kevin Wolf (4): qcow2: Move sync out of write_refcount_block_entries qcow2: Move sync out of update_refcount qcow2: Move sync out of qcow2_alloc_clusters qcow2: Get rid of additional sync on COW block/qcow2-cluster.c | 11 ++++++++++- block/qcow2-refcount.c | 13 ++++++++++++- block/qcow2-snapshot.c | 2 ++ 3 files changed, 24 insertions(+), 2 deletions(-) -- 1.7.2.2