From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37332) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZrSEA-00047E-Jp for qemu-devel@nongnu.org; Wed, 28 Oct 2015 11:01:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZrSE8-0003CL-DU for qemu-devel@nongnu.org; Wed, 28 Oct 2015 11:01:26 -0400 From: "Denis V. Lunev" Date: Wed, 28 Oct 2015 18:01:01 +0300 Message-Id: <1446044465-19312-1-git-send-email-den@openvz.org> Subject: [Qemu-devel] [PATCH v3 0/4] dataplane snapshot fixes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Denis V. Lunev" , Paolo Bonzini , qemu-devel@nongnu.org, Stefan Hajnoczi , qemu-stable@nongnu.org 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 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 CC: Stefan Hajnoczi CC: Paolo Bonzini 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 async.c | 5 +++++ block/io.c | 5 ++++- block/snapshot.c | 5 +++++ include/block/aio.h | 3 +++ include/qemu/rfifolock.h | 1 + migration/savevm.c | 18 +++++++++++++++--- util/rfifolock.c | 9 +++++++-- 7 files changed, 40 insertions(+), 6 deletions(-) -- 2.1.4