with 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.

Anyway, I think that the construction like
    assert(aio_context_is_locked(aio_context));
should be widely used to ensure proper locking.

Changes from v4:
- only migration/savevm.c code and monitor is affected now. Generic block
  layer stuff will be sent separately to speedup merging. The approach
  in general was negotiated with Juan and Stefan.

Changes from v3:
- more places found
- new aio_poll concept, see patch 10

Changes from v2:
- droppped patch 5 as already merged
- changed locking scheme in patch 4 by suggestion of Juan

Changes from v1:
- aio-context locking added
- comment is rewritten

Signed-off-by: Denis V. Lunev <d...@openvz.org>
CC: Stefan Hajnoczi <stefa...@redhat.com>
CC: Juan Quintela <quint...@redhat.com>
CC: Kevin Wolf <kw...@redhat.com>

Denis V. Lunev (11):
  snapshot: create helper to test that block drivers supports snapshots
  snapshot: return error code from bdrv_snapshot_delete_by_id_or_name
  snapshot: create bdrv_all_delete_snapshot helper
  snapshot: create bdrv_all_goto_snapshot helper
  snapshot: create bdrv_all_find_snapshot helper
  migration: drop find_vmstate_bs check in hmp_delvm
  migration: reorder processing in hmp_savevm
  migration: implement bdrv_all_find_vmstate_bs and bdrv_unlock helpers
  migration: add missed aio_context_acquire for state writing/reading
  snapshot: create bdrv_all_create_snapshot helper
  monitor: add missed aio_context_acquire into vm_completion call

 block/snapshot.c         | 141 +++++++++++++++++++++++++++++-
 include/block/snapshot.h |  23 ++++-
 migration/savevm.c       | 219 +++++++++++++++--------------------------------
 monitor.c                |  11 ++-
 4 files changed, 234 insertions(+), 160 deletions(-)

-- 
2.5.0


Reply via email to