qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH QEMU 2.5 v4 0/10] dataplane snapshot fixes + aio_pol


From: Denis V. Lunev
Subject: [Qemu-devel] [PATCH QEMU 2.5 v4 0/10] dataplane snapshot fixes + aio_poll fixes
Date: Tue, 3 Nov 2015 17:12:03 +0300

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.

Patches 1-5 must be committed into QEMU 2.5. The rest is to be discussed
and could be taken later. Though they are safe enough except (some) places
where guard around bdrv_drain is necessary.

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 <address@hidden>
CC: Stefan Hajnoczi <address@hidden>
CC: Paolo Bonzini <address@hidden>

Denis V. Lunev (9):
  migration: add missed aio_context_acquire for state writing/reading
  block: add missed aio_context_acquire around bdrv_set_aio_context
  migration: added missed aio_context_acquire around
    bdrv_snapshot_delete
  block: guard bdrv_drain in bdrv_close with aio_context_acquire
  io: guard aio_poll with aio_context_acquire
  block: call aio_context_acquire in qemu_img/nbd/io
  fifolock: create rfifolock_is_owner helper
  aio_context: create aio_context_is_owner helper
  aio: change aio_poll constraints

Stefan Hajnoczi (1):
  blockdev: acquire AioContext in hmp_commit()

 aio-posix.c              | 11 +----------
 aio-win32.c              |  9 +--------
 async.c                  |  5 +++++
 block.c                  | 10 +++++++++-
 block/block-backend.c    |  3 +++
 block/curl.c             |  3 +++
 block/io.c               | 11 +++++++++++
 block/iscsi.c            |  2 ++
 block/nfs.c              |  5 +++++
 block/qed-table.c        | 20 ++++++++++++++++----
 block/sheepdog.c         |  2 ++
 blockdev.c               | 12 +++++++++++-
 blockjob.c               |  6 ++++++
 include/block/aio.h      |  5 +++++
 include/qemu/rfifolock.h |  1 +
 migration/savevm.c       | 28 +++++++++++++++++++++++++---
 qemu-img.c               |  2 ++
 qemu-io-cmds.c           |  6 +++++-
 qemu-io.c                |  1 +
 qemu-nbd.c               |  1 +
 tests/test-aio.c         | 11 +++++++++++
 tests/test-thread-pool.c | 15 +++++++++++++++
 util/rfifolock.c         | 12 +++++++++---
 23 files changed, 150 insertions(+), 31 deletions(-)

-- 
2.5.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]