[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more |
Date: |
Tue, 26 Mar 2013 17:49:52 +0100 |
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(-)
--
1.8.1.4
- [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more,
Kevin Wolf <=
- [Qemu-devel] [PATCH v2 02/21] qcow2: Fix "total clusters" number in bdrv_check, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 01/21] qemu-iotests: More concurrent allocation scenarios, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 04/21] qcow2: Handle dependencies earlier, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 03/21] qcow2: Remove bogus unlock of s->lock, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 06/21] qcow2: Change handle_dependency to byte granularity, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 08/21] qcow2: Factor out handle_alloc(), Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 07/21] qcow2: Decouple cluster allocation from cluster reuse code, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 05/21] qcow2: Improve check for overlapping allocations, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 09/21] qcow2: handle_alloc(): Get rid of nb_clusters parameter, Kevin Wolf, 2013/03/26
- [Qemu-devel] [PATCH v2 10/21] qcow2: handle_alloc(): Get rid of keep_clusters parameter, Kevin Wolf, 2013/03/26