replay: don't drain/flush bdrv queue while RR is working
commitc8aa7895eb536e1fc9ef2740e4e32bb9ec6f3afa
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Tue, 17 Sep 2019 11:58:08 +0000 (17 14:58 +0300)
committerKevin Wolf <kwolf@redhat.com>
Mon, 14 Oct 2019 15:12:48 +0000 (14 17:12 +0200)
tree4a773e9e4f6e96573a3bb9b37eb09282dc547a4c
parentde499eb67cda5c852605fe365950844412cbe789
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>
block/io.c
cpus.c