From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USljP-0007Ot-FS for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:06:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USljK-00062c-By for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:06:19 -0400 Received: from mail-we0-x22c.google.com ([2a00:1450:400c:c03::22c]:41915) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USljK-00061t-6s for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:06:14 -0400 Received: by mail-we0-f172.google.com with SMTP id r3so2027468wey.31 for ; Thu, 18 Apr 2013 03:06:13 -0700 (PDT) Date: Thu, 18 Apr 2013 12:06:10 +0200 From: Stefan Hajnoczi Message-ID: <20130418100610.GD19587@stefanha-thinkpad.redhat.com> References: <1365581513-3475-1-git-send-email-wdongxu@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1365581513-3475-1-git-send-email-wdongxu@linux.vnet.ibm.com> Subject: Re: [Qemu-devel] [PATCH V18 0/6] add-cow file format List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Dong Xu Wang Cc: kwol@redhat.com, wdongxu@cn.ibm.com, qemu-devel@nongnu.org, stefanha@redhat.com On Wed, Apr 10, 2013 at 04:11:47PM +0800, Dong Xu Wang wrote: > It will introduce a new file format: add-cow. > > The add-cow file format makes it possible to perform copy-on-write on top of > a raw disk image. When we know that no backing file clusters remain visible > (e.g. we have streamed the entire image and copied all data from the backing > file), then it is possible to discard the add-cow file and use the raw image > file directly. > > This feature adds the copy-on-write feature to raw files (which cannot support > it natively) while allowing us to get full performance again later when we no > longer need copy-on-write. > > add-cow can benefit from other available functions, such as path_has_protocol > and qed_read_string, so we will make them public. > > snapshot_blkdev are not supported now for add-cow. Will add it in futher patches. > > These patches are using QemuOpts parser, former patches could be found here: > http://patchwork.ozlabs.org/patch/235300/ > > > v17 -> v18: > 1) remove version field. > 2) header size is maximum value and cluster size value. > 3) fix type. > 4) move struct to source file. > 5) cluster_size->table_size. > 6) use error_report, not fprintf. > 7) remove version field from header. > 8) header_size is MAX(cluster_size, 4096). > 9) introduce s->cluster_sectors. > 10) use BLKDBG_L2_LOAD/UPDATE. > 11) add 037 and 038 tests. Left a few comments but the series is close. The biggest practical issue is serialized allocating writes. Installation or multi-threaded write workloads may be quite slow since only one read request is processed at a time. This can be solved later. Stefan