[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [PATCH QEMU 2.5 v4 0/10] dataplane snapshot fixes + aio_po
From: |
Denis V. Lunev |
Subject: |
[Qemu-stable] [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
- [Qemu-stable] [PATCH QEMU 2.5 v4 0/10] dataplane snapshot fixes + aio_poll fixes,
Denis V. Lunev <=
- [Qemu-stable] [PATCH 01/10] migration: add missed aio_context_acquire for state writing/reading, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 02/10] block: add missed aio_context_acquire around bdrv_set_aio_context, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 03/10] migration: added missed aio_context_acquire around bdrv_snapshot_delete, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 05/10] block: guard bdrv_drain in bdrv_close with aio_context_acquire, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 04/10] blockdev: acquire AioContext in hmp_commit(), Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 07/10] block: call aio_context_acquire in qemu_img/nbd/io, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 08/10] fifolock: create rfifolock_is_owner helper, Denis V. Lunev, 2015/11/03
- [Qemu-stable] [PATCH 06/10] io: guard aio_poll with aio_context_acquire, Denis V. Lunev, 2015/11/03