All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/7] Reduce the number of I/O ops when doing COW
@ 2017-06-16 13:37 Alberto Garcia
  2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 1/7] qcow2: Remove unused Error variable in do_perform_cow() Alberto Garcia
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Alberto Garcia @ 2017-06-16 13:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Kevin Wolf, Max Reitz, Eric Blake, Denis V . Lunev,
	Stefan Hajnoczi, Alberto Garcia

Hi all,

here's a patch series that rewrites the copy-on-write code in the
qcow2 driver to reduce the number of I/O operations.

This is version v3, please refer to the original e-mail for a complete
description:

https://lists.gnu.org/archive/html/qemu-block/2017-05/msg00882.html

Regards,

Berto

v3:
- Patch 4: Over-allocate the read buffer in perform_cow() so both COW
           sectors are optimally aligned [Eric]

v2:
- Patch 1: Update commit message [Eric]
- Patch 7: Make sure that the number of iovs does not exceed IOV_MAX [Anton]
- Patch 7: Don't add zero-length buffers to the qiov in perform_cow()

v1: https://lists.gnu.org/archive/html/qemu-block/2017-05/msg00882.html
- Initial version

Output of git-backport-diff against v2:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/7:[----] [--] 'qcow2: Remove unused Error variable in do_perform_cow()'
002/7:[----] [--] 'qcow2: Use unsigned int for both members of Qcow2COWRegion'
003/7:[----] [--] 'qcow2: Make perform_cow() call do_perform_cow() twice'
004/7:[0009] [FC] 'qcow2: Split do_perform_cow() into _read(), _encrypt() and _write()'
005/7:[0026] [FC] 'qcow2: Allow reading both COW regions with only one request'
006/7:[----] [-C] 'qcow2: Pass a QEMUIOVector to do_perform_cow_{read,write}()'
007/7:[----] [-C] 'qcow2: Merge the writing of the COW regions with the guest data'

Alberto Garcia (7):
  qcow2: Remove unused Error variable in do_perform_cow()
  qcow2: Use unsigned int for both members of Qcow2COWRegion
  qcow2: Make perform_cow() call do_perform_cow() twice
  qcow2: Split do_perform_cow() into _read(), _encrypt() and _write()
  qcow2: Allow reading both COW regions with only one request
  qcow2: Pass a QEMUIOVector to do_perform_cow_{read,write}()
  qcow2: Merge the writing of the COW regions with the guest data

 block/qcow2-cluster.c | 201 ++++++++++++++++++++++++++++++++++++++------------
 block/qcow2.c         |  64 +++++++++++++---
 block/qcow2.h         |  11 ++-
 3 files changed, 216 insertions(+), 60 deletions(-)

-- 
2.11.0

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

end of thread, other threads:[~2017-06-16 13:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-16 13:37 [Qemu-devel] [PATCH v3 0/7] Reduce the number of I/O ops when doing COW Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 1/7] qcow2: Remove unused Error variable in do_perform_cow() Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 2/7] qcow2: Use unsigned int for both members of Qcow2COWRegion Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 3/7] qcow2: Make perform_cow() call do_perform_cow() twice Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 4/7] qcow2: Split do_perform_cow() into _read(), _encrypt() and _write() Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 5/7] qcow2: Allow reading both COW regions with only one request Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 6/7] qcow2: Pass a QEMUIOVector to do_perform_cow_{read, write}() Alberto Garcia
2017-06-16 13:37 ` [Qemu-devel] [PATCH v3 7/7] qcow2: Merge the writing of the COW regions with the guest data Alberto Garcia

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.