[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more |
Date: |
Wed, 27 Mar 2013 11:29:48 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Mar 26, 2013 at 05:49:52PM +0100, Kevin Wolf wrote:
> This is the start of the latest Delayed COW series. As there seem to be
> serious
> problems with the actual Delayed COW (which in fact exist today, but would
> become a bit easier to hit) and I don't have the time to complete this at the
> moment, here is another series with preparatory patches, for which there's no
> reason to not get them applied now.
>
> The result is a somewhat cleaner cluster allocation code in qcow2, and in
> theory some cases should show improved performance - in practice I think these
> cases are unlikely to occur, but as the optimisation falls out naturally,
> let's
> just take it.
>
> Kevin Wolf (21):
> qemu-iotests: More concurrent allocation scenarios
> qcow2: Fix "total clusters" number in bdrv_check
> qcow2: Remove bogus unlock of s->lock
> qcow2: Handle dependencies earlier
> qcow2: Improve check for overlapping allocations
> qcow2: Change handle_dependency to byte granularity
> qcow2: Decouple cluster allocation from cluster reuse code
> qcow2: Factor out handle_alloc()
> qcow2: handle_alloc(): Get rid of nb_clusters parameter
> qcow2: handle_alloc(): Get rid of keep_clusters parameter
> qcow2: Finalise interface of handle_alloc()
> qcow2: Clean up handle_alloc()
> qcow2: Factor out handle_copied()
> qcow2: handle_copied(): Get rid of nb_clusters parameter
> qcow2: handle_copied(): Get rid of keep_clusters parameter
> qcow2: handle_copied(): Implement non-zero host_offset
> qcow2: Prepare handle_alloc/copied() for byte granularity
> qcow2: Use byte granularity in qcow2_alloc_cluster_offset()
> qcow2: Allow requests with multiple l2metas
> qcow2: Move cluster gathering to a non-looping loop
> qcow2: Gather clusters in a looping loop
>
> block/qcow2-cluster.c | 507
> ++++++++++++++++++++++++++++++++-------------
> block/qcow2-refcount.c | 4 +-
> block/qcow2.c | 16 +-
> block/qcow2.h | 29 +++
> tests/qemu-iotests/038.out | 10 +-
> tests/qemu-iotests/044.out | 4 +-
> tests/qemu-iotests/046 | 49 ++++-
> tests/qemu-iotests/046.out | 76 +++++++
> trace-events | 2 +
> 9 files changed, 534 insertions(+), 163 deletions(-)
Looks good except for an out-dated comment that I spotted.
Please either resend a fixed version or let me know the exact comment
fix you want so I can apply it while merging.
Thanks,
Stefan
- [Qemu-devel] [PATCH v2 14/21] qcow2: handle_copied(): Get rid of nb_clusters parameter, (continued)
- [Qemu-devel] [PATCH v2 14/21] qcow2: handle_copied(): Get rid of nb_clusters parameter, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 16/21] qcow2: handle_copied(): Implement non-zero host_offset, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 17/21] qcow2: Prepare handle_alloc/copied() for byte granularity, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 11/21] qcow2: Finalise interface of handle_alloc(), Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 18/21] qcow2: Use byte granularity in qcow2_alloc_cluster_offset(), Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 19/21] qcow2: Allow requests with multiple l2metas, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 21/21] qcow2: Gather clusters in a looping loop, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 20/21] qcow2: Move cluster gathering to a non-looping loop, Kevin Wolf, 2013/03/26
- Re: [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more, Stefan Hajnoczi, 2013/03/27