The following test
while /bin/true ; do
virsh snapshot-create rhel7
sleep 10
virsh snapshot-delete rhel7 --current
done
with enabled iothreads on a running VM leads to a lot of troubles: hangs,
asserts, errors.
Though (in general) HMP snapshot code is terrible. I think it should be
dropped at once and replaced with blkdev transactions code. Though is
could not fit to QEMU 2.5/stable at all.
Anyway, I think that the construction like
assert(aio_context_is_locked(aio_context));
should be widely used to ensure proper locking.
Changes from v1:
- aio-context locking added
- comment is rewritten
Signed-off-by: Denis V. Lunev <[email protected]>
CC: Stefan Hajnoczi <[email protected]>
CC: Paolo Bonzini <[email protected]>
Denis V. Lunev (4):
fifolock: create rfifolock_is_locked helper
aio_context: create aio_context_is_locked helper
io: add locking constraints check into bdrv_drain to ensure locking
migration: add missed aio_context_acquire into hmp_savevm/hmp_delvm
Pavel Butsykin (1):
virtio: sync the dataplane vring state to the virtqueue before
virtio_save
async.c | 5 +++++
block/io.c | 5 ++++-
block/snapshot.c | 5 +++++
hw/block/virtio-blk.c | 5 +++++
hw/scsi/virtio-scsi.c | 5 +++++
include/block/aio.h | 3 +++
include/qemu/rfifolock.h | 1 +
migration/savevm.c | 7 +++++++
util/rfifolock.c | 9 +++++++--
9 files changed, 42 insertions(+), 3 deletions(-)
--
2.1.4