mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-26 09:28:38 -07:00
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> |
||
|---|---|---|
| .. | ||
| bochs.c | ||
| cloop.c | ||
| cow.c | ||
| curl.c | ||
| dmg.c | ||
| nbd.c | ||
| parallels.c | ||
| qcow.c | ||
| qcow2-cluster.c | ||
| qcow2-refcount.c | ||
| qcow2-snapshot.c | ||
| qcow2.c | ||
| qcow2.h | ||
| raw-posix-aio.h | ||
| raw-posix.c | ||
| raw-win32.c | ||
| vdi.c | ||
| vmdk.c | ||
| vpc.c | ||
| vvfat.c | ||