qemu/block
Denis V. Lunev 156af3ac98 block: fix possible reorder of flush operations
This patch reduce CPU usage of flush operations a bit. When we have one
flush completed we should kick only next operation. We should not start
all pending operations in the hope that they will go back to wait on
wait_queue.

Also there is a technical possibility that requests will get reordered
with the previous approach. After wakeup all requests are removed from
the wait queue. They become active and they are processed one-by-one
adding to the wait queue in the same order. Though new flush can arrive
while all requests are not put into the queue.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Tested-by: Evgeny Yakovlev <eyakovlev@virtuozzo.com>
Signed-off-by: Evgeny Yakovlev <eyakovlev@virtuozzo.com>
Message-id: 1471457214-3994-3-git-send-email-den@openvz.org
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Fam Zheng <famz@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-08-18 14:36:49 +01:00
..
accounting.c
archipelago.c
backup.c
blkdebug.c block/blkdebug: Store config filename 2016-08-15 15:52:28 +02:00
blkreplay.c blkreplay: Switch .bdrv_co_discard() to byte-based 2016-07-20 14:11:55 +01:00
blkverify.c
block-backend.c block: Convert BB interface to byte-based discards 2016-07-20 14:11:55 +01:00
bochs.c
cloop.c
commit.c
crypto.c block: export LUKS specific data to qemu-img info 2016-07-26 17:46:37 +02:00
curl.c curl: Cast fd to int for DPRINTF 2016-08-17 19:57:54 +08:00
dirty-bitmap.c
dmg.c
gluster.c Pull request 2016-07-21 11:00:36 +01:00
io.c block: fix possible reorder of flush operations 2016-08-18 14:36:49 +01:00
iscsi.c iscsi: Switch .bdrv_co_discard() to byte-based 2016-07-20 14:24:25 +01:00
linux-aio.c linux-aio: Handle io_submit() failure gracefully 2016-08-11 09:42:35 +01:00
Makefile.objs
mirror.c mirror: finish earlier on error 2016-08-08 13:05:43 +02:00
nbd-client.c nbd: Convert to byte-based interface 2016-07-20 14:24:25 +01:00
nbd-client.h nbd: Limit nbdflags to 16 bits 2016-08-03 18:44:56 +02:00
nbd.c block/nbd: Store runtime option values 2016-08-15 15:52:29 +02:00
nfs.c
null.c
parallels.c block/parallels: check new image size 2016-08-05 09:59:06 +01:00
qapi.c
qcow2-cache.c
qcow2-cluster.c
qcow2-refcount.c
qcow2-snapshot.c
qcow2.c qcow2: do not allocate extra memory 2016-07-26 17:46:37 +02:00
qcow2.h
qcow.c qcow2: do not allocate extra memory 2016-07-26 17:46:37 +02:00
qed-check.c
qed-cluster.c
qed-gencb.c
qed-l2-cache.c
qed-table.c
qed.c
qed.h
quorum.c
raw_bsd.c raw_bsd: Convert to byte-based interface 2016-07-20 14:24:25 +01:00
raw-posix.c block: Convert .bdrv_aio_discard() to byte-based 2016-07-20 14:11:55 +01:00
raw-win32.c raw-posix: Switch paio_submit() to byte-based 2016-07-20 14:11:55 +01:00
rbd.c block: Convert .bdrv_aio_discard() to byte-based 2016-07-20 14:11:55 +01:00
sheepdog.c sheepdog: Switch .bdrv_co_discard() to byte-based 2016-07-20 14:24:25 +01:00
snapshot.c
ssh.c block/ssh: Use QemuOpts for runtime options 2016-08-15 15:52:28 +02:00
stream.c
throttle-groups.c
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
vdi.c
vhdx-endian.c
vhdx-log.c
vhdx.c
vhdx.h
vmdk.c
vpc.c
vvfat.c
win32-aio.c
write-threshold.c