qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more
@ 2013-03-26 16:49 Kevin Wolf
  2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 01/21] qemu-iotests: More concurrent allocation scenarios Kevin Wolf
                   ` (22 more replies)
  0 siblings, 23 replies; 26+ messages in thread
From: Kevin Wolf @ 2013-03-26 16:49 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, stefanha

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

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2013-03-27 12:42 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-26 16:49 [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 01/21] qemu-iotests: More concurrent allocation scenarios Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 02/21] qcow2: Fix "total clusters" number in bdrv_check Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 03/21] qcow2: Remove bogus unlock of s->lock Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 04/21] qcow2: Handle dependencies earlier Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 05/21] qcow2: Improve check for overlapping allocations Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 06/21] qcow2: Change handle_dependency to byte granularity Kevin Wolf
2013-03-26 16:49 ` [Qemu-devel] [PATCH v2 07/21] qcow2: Decouple cluster allocation from cluster reuse code Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 08/21] qcow2: Factor out handle_alloc() Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 09/21] qcow2: handle_alloc(): Get rid of nb_clusters parameter Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 10/21] qcow2: handle_alloc(): Get rid of keep_clusters parameter Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 11/21] qcow2: Finalise interface of handle_alloc() Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 12/21] qcow2: Clean up handle_alloc() Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 13/21] qcow2: Factor out handle_copied() Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 14/21] qcow2: handle_copied(): Get rid of nb_clusters parameter Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 15/21] qcow2: handle_copied(): Get rid of keep_clusters parameter Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 16/21] qcow2: handle_copied(): Implement non-zero host_offset Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 17/21] qcow2: Prepare handle_alloc/copied() for byte granularity Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 18/21] qcow2: Use byte granularity in qcow2_alloc_cluster_offset() Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 19/21] qcow2: Allow requests with multiple l2metas Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 20/21] qcow2: Move cluster gathering to a non-looping loop Kevin Wolf
2013-03-26 16:50 ` [Qemu-devel] [PATCH v2 21/21] qcow2: Gather clusters in a looping loop Kevin Wolf
2013-03-27 10:27   ` Stefan Hajnoczi
2013-03-27 10:43     ` [Qemu-devel] [PATCH v3 " Kevin Wolf
2013-03-27 10:29 ` [Qemu-devel] [PATCH v2 00/21] qcow2: Rework cluster allocation even more Stefan Hajnoczi
2013-03-27 12:41 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).