qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Pavel Butsykin <pbutsykin@virtuozzo.com>,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: [Qemu-devel] [PATCH 2/5] migration: hold AioContext lock for loadvm qemu_fclose()
Date: Thu, 15 Jun 2017 17:38:10 +0100	[thread overview]
Message-ID: <20170615163813.7255-3-stefanha@redhat.com> (raw)
In-Reply-To: <20170615163813.7255-1-stefanha@redhat.com>

migration_incoming_state_destroy() uses qemu_fclose() on the vmstate
file.  Make sure to call it inside an AioContext acquire/release region.

This fixes an 'qemu: qemu_mutex_unlock: Operation not permitted' abort
in loadvm.

This patch closes the vmstate file before ending the drained region.
Previously we closed the vmstate file after ending the drained region.
The order does not matter.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 migration/savevm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/migration/savevm.c b/migration/savevm.c
index ff126a1..943a43c 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2292,11 +2292,11 @@ int load_snapshot(const char *name, Error **errp)
 
     aio_context_acquire(aio_context);
     ret = qemu_loadvm_state(f);
+    migration_incoming_state_destroy();
     aio_context_release(aio_context);
 
     bdrv_drain_all_end();
 
-    migration_incoming_state_destroy();
     if (ret < 0) {
         error_setg(errp, "Error %d while loading VM state", ret);
         return ret;
-- 
2.9.4

  parent reply	other threads:[~2017-06-15 16:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-15 16:38 [Qemu-devel] [PATCH 0/5] qemu-iotests: test savevm/loadvm iothread (and make it work!) Stefan Hajnoczi
2017-06-15 16:38 ` [Qemu-devel] [PATCH 1/5] virtio-pci: use ioeventfd even when KVM is disabled Stefan Hajnoczi
2017-06-16  3:26   ` Michael S. Tsirkin
2017-06-16  9:13     ` Stefan Hajnoczi
2017-06-16 14:12   ` Michael S. Tsirkin
2017-06-19 12:23     ` Stefan Hajnoczi
2017-06-27  8:43   ` Fam Zheng
2017-06-27 11:07     ` Kevin Wolf
2017-06-28 12:17       ` Stefan Hajnoczi
2017-06-15 16:38 ` Stefan Hajnoczi [this message]
2017-06-15 16:38 ` [Qemu-devel] [PATCH 3/5] qemu-iotests: 068: extract _qemu() function Stefan Hajnoczi
2017-06-19 12:47   ` Kevin Wolf
2017-06-27 11:40   ` Eric Blake
2017-06-27 11:42     ` Eric Blake
2017-06-28 12:13     ` Stefan Hajnoczi
2017-06-28 12:50       ` Eric Blake
2017-06-28 12:57     ` Kevin Wolf
2017-06-28 14:02       ` Eric Blake
2017-06-28 14:07         ` Kevin Wolf
2017-06-15 16:38 ` [Qemu-devel] [PATCH 4/5] qemu-iotests: 068: use -drive/-device instead of -hda Stefan Hajnoczi
2017-06-15 16:38 ` [Qemu-devel] [PATCH 5/5] qemu-iotests: 068: test iothread mode Stefan Hajnoczi
2017-06-15 16:42 ` [Qemu-devel] [PATCH 0/5] qemu-iotests: test savevm/loadvm iothread (and make it work!) Stefan Hajnoczi
2017-06-19 12:26 ` Pavel Butsykin
2017-07-05 12:55   ` Stefan Hajnoczi
2017-07-05 14:04     ` Pavel Butsykin
2017-06-19 12:55 ` Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170615163813.7255-3-stefanha@redhat.com \
    --to=stefanha@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbutsykin@virtuozzo.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).