qemu/block
Pavel Dovgalyuk c8aa7895eb replay: don't drain/flush bdrv queue while RR is working
In record/replay mode bdrv queue is controlled by replay mechanism.
It does not allow saving or loading the snapshots
when bdrv queue is not empty. Stopping the VM is not blocked by nonempty
queue, but flushing the queue is still impossible there,
because it may cause deadlocks in replay mode.
This patch disables bdrv_drain_all and bdrv_flush_all in
record/replay mode.

Stopping the machine when the IO requests are not finished is needed
for the debugging. E.g., breakpoint may be set at the specified step,
and forcing the IO requests to finish may break the determinism
of the execution.

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Acked-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2019-10-14 17:12:48 +02:00
..
accounting.c block: add empty account cookie type 2019-10-10 10:56:18 +02:00
aio_task.c block: introduce aio task pool 2019-10-10 10:56:17 +02:00
backup-top.c block/backup: use backup-top instead of write notifiers 2019-10-10 10:56:18 +02:00
backup-top.h block: introduce backup-top filter driver 2019-10-10 10:56:18 +02:00
backup.c block/backup: use backup-top instead of write notifiers 2019-10-10 10:56:18 +02:00
blkdebug.c
blklogwrites.c
blkreplay.c block: implement bdrv_snapshot_goto for blkreplay 2019-10-14 17:12:48 +02:00
blkverify.c
block-backend.c
block-copy.c block/backup: use backup-top instead of write notifiers 2019-10-10 10:56:18 +02:00
bochs.c block: Use QEMU_IS_ALIGNED 2019-09-16 14:48:30 +02:00
cloop.c block: Use QEMU_IS_ALIGNED 2019-09-16 14:48:30 +02:00
commit.c job: drop job_drain 2019-09-10 08:58:43 +02:00
copy-on-read.c
create.c block/create: Do not abort if a block driver is not available 2019-09-13 12:18:37 +02:00
crypto.c LUKS: support preallocation 2019-08-19 17:13:26 +02:00
crypto.h
curl.c curl: Check curl_multi_add_handle()'s return code 2019-09-16 15:31:12 +02:00
dirty-bitmap.c qapi: implement block-dirty-bitmap-remove transaction action 2019-08-16 16:28:03 -04:00
dmg-bz2.c
dmg-lzfse.c
dmg.c block: Use QEMU_IS_ALIGNED 2019-09-16 14:48:30 +02:00
dmg.h
file-posix.c qapi: query-blockstat: add driver specific file-posix stats 2019-10-10 10:56:18 +02:00
file-win32.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
gluster.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
io.c replay: don't drain/flush bdrv queue while RR is working 2019-10-14 17:12:48 +02:00
iscsi-opts.c
iscsi.c
linux-aio.c
Makefile.objs block: introduce backup-top filter driver 2019-10-10 10:56:18 +02:00
mirror.c job: drop job_drain 2019-09-10 08:58:43 +02:00
nbd.c nbd: add empty .bdrv_reopen_prepare 2019-10-10 10:56:18 +02:00
nfs.c block/nfs: add support for nfs_umount 2019-09-13 12:18:15 +02:00
null.c
nvme.c
parallels.c block: Use bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
parallels.h
qapi.c qapi: query-blockstat: add driver specific file-posix stats 2019-10-10 10:56:18 +02:00
qcow.c
qcow2-bitmap.c
qcow2-cache.c
qcow2-cluster.c block/qcow2: refactor encryption code 2019-09-16 15:36:22 +02:00
qcow2-refcount.c
qcow2-snapshot.c
qcow2-threads.c block/qcow2: refactor encryption code 2019-09-16 15:36:22 +02:00
qcow2.c block/qcow2: introduce parallel subrequest handling in read and write 2019-10-10 10:56:17 +02:00
qcow2.h block/qcow2: introduce parallel subrequest handling in read and write 2019-10-10 10:56:17 +02:00
qed-check.c
qed-cluster.c
qed-l2-cache.c
qed-table.c
qed.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
qed.h
quorum.c
raw-format.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
rbd.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
replication.c block/backup: use backup-top instead of write notifiers 2019-10-10 10:56:18 +02:00
sheepdog.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
snapshot.c block/snapshot: Restrict set of snapshot nodes 2019-10-04 11:52:40 +02:00
ssh.c block: Implement .bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
stream.c job: drop job_drain 2019-09-10 08:58:43 +02:00
throttle-groups.c
throttle.c
trace-events block: move block_copy from block/backup.c to separate file 2019-10-10 10:56:17 +02:00
vdi.c vdi: Make block_status recurse for fixed images 2019-08-19 17:13:26 +02:00
vhdx-endian.c
vhdx-log.c
vhdx.c block/vhdx: add check for truncated image files 2019-10-14 17:12:48 +02:00
vhdx.h
vmdk.c vmdk: Reject invalid compressed writes 2019-09-03 14:55:35 +02:00
vpc.c vpc: Return 0 from vpc_co_create() on success 2019-09-10 08:58:43 +02:00
vvfat.c block: Use QEMU_IS_ALIGNED 2019-09-16 14:48:30 +02:00
vxhs.c
win32-aio.c
write-threshold.c