qemu/block
Kevin Wolf f214978a42 qcow2: Order concurrent AIO requests on the same unallocated cluster
When two AIO requests write to the same cluster, and this cluster is
unallocated, currently both requests allocate a new cluster and the second one
merges the first one when it is completed. This means an cluster allocation, a
read and a cluster deallocation which cause some overhead. If we simply let the
second request wait until the first one is done, we improve overall performance
with AIO requests (specifially, qcow2/virtio combinations).

This patch maintains a list of in-flight requests that have allocated new
clusters. A second request touching the same cluster is limited so that it
either doesn't touch the allocation of the first request (so it can have a
non-overlapping allocation) or it waits for the first request to complete.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-09 17:31:26 -05:00
..
bochs.c Move block drivers into their own directory 2009-05-14 16:13:46 -05:00
cloop.c Move block drivers into their own directory 2009-05-14 16:13:46 -05:00
cow.c qemu-img: Print available options with -o ? 2009-06-06 18:38:57 +03:00
curl.c Fix Sparse warning about "expression using sizeof on a function" 2009-08-01 10:13:44 +00:00
dmg.c Revert "support colon in filenames" 2009-07-09 16:06:38 -05:00
nbd.c Move block drivers into their own directory 2009-05-14 16:13:46 -05:00
parallels.c Move block drivers into their own directory 2009-05-14 16:13:46 -05:00
qcow2-cluster.c qcow2: Order concurrent AIO requests on the same unallocated cluster 2009-09-09 17:31:26 -05:00
qcow2-refcount.c Fix most warnings (errors with -Werror) when debugging is enabled 2009-07-20 17:19:25 +00:00
qcow2-snapshot.c Fix QCOW2 debugging code to compile again 2009-06-29 08:52:40 -05:00
qcow2.c qcow2: Order concurrent AIO requests on the same unallocated cluster 2009-09-09 17:31:26 -05:00
qcow2.h qcow2: Order concurrent AIO requests on the same unallocated cluster 2009-09-09 17:31:26 -05:00
qcow.c qcow1: Fix qcow_aio_writev 2009-07-10 13:44:29 -05:00
raw-posix-aio.h raw-posix: add Linux native AIO support 2009-08-27 20:30:22 -05:00
raw-posix.c Don't compile aio code if CONFIG_LINUX_AIO is undefined 2009-08-28 08:57:49 -05:00
raw-win32.c block: add bdrv_probe_device method 2009-06-15 14:04:22 +02:00
vdi.c block/vdi.c: Fix several bugs 2009-08-27 19:33:15 -05:00
vmdk.c vmdk: Fix backing file handling 2009-07-22 10:58:47 -05:00
vpc.c Fix spelling in comment. 2009-09-09 14:57:20 -05:00
vvfat.c vvfat: one more missing BlockDriver C99 initializer conversion 2009-05-28 02:14:56 -05:00