From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Anthony PERARD <anthony.perard@citrix.com>, kwolf@redhat.com
Cc: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org,
Ian Jackson <ian.jackson@eu.citrix.com>,
Wei Liu <wei.liu2@citrix.com>,
Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] migration, xen: Fix block image lock issue on live migration
Date: Mon, 2 Oct 2017 20:18:22 +0100 [thread overview]
Message-ID: <20171002191822.GA2707@work-vm> (raw)
In-Reply-To: <20171002163058.15651-1-anthony.perard@citrix.com>
Adding in kwolf; it looks sane to me; Kevin?
If I'm reading this right, this is just after the device state save.
Dave
* Anthony PERARD (anthony.perard@citrix.com) wrote:
> When doing a live migration of a Xen guest with libxl, the images for
> block devices are locked by the original QEMU process, and this prevent
> the QEMU at the destination to take the lock and the migration fail.
>
> From QEMU point of view, once the RAM of a domain is migrated, there is
> two QMP commands, "stop" then "xen-save-devices-state", at which point a
> new QEMU is spawned at the destination.
>
> Release locks in "xen-save-devices-state" so the destination can takes
> them.
>
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
> CCing libxl maintainers:
> CC: Ian Jackson <ian.jackson@eu.citrix.com>
> CC: Wei Liu <wei.liu2@citrix.com>
> ---
> migration/savevm.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/migration/savevm.c b/migration/savevm.c
> index 4a88228614..69d904c179 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -2263,6 +2263,20 @@ void qmp_xen_save_devices_state(const char *filename, Error **errp)
> qemu_fclose(f);
> if (ret < 0) {
> error_setg(errp, QERR_IO_ERROR);
> + } else {
> + /* libxl calls the QMP command "stop" before calling
> + * "xen-save-devices-state" and in case of migration failure, libxl
> + * would call "cont".
> + * So call bdrv_inactivate_all (release locks) here to let the other
> + * side of the migration take controle of the images.
> + */
> + if (!saved_vm_running) {
> + ret = bdrv_inactivate_all();
> + if (ret) {
> + error_setg(errp, "%s: bdrv_inactivate_all() failed (%d)",
> + __func__, ret);
> + }
> + }
> }
>
> the_end:
> --
> Anthony PERARD
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-10-02 19:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-02 16:30 [Qemu-devel] [PATCH] migration, xen: Fix block image lock issue on live migration Anthony PERARD
2017-10-02 19:18 ` Dr. David Alan Gilbert [this message]
2017-10-04 13:03 ` Kevin Wolf
2017-10-24 12:11 ` Anthony PERARD
2017-10-03 11:33 ` [Qemu-devel] [Xen-devel] " Roger Pau Monné
2017-10-03 11:47 ` Anthony PERARD
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=20171002191822.GA2707@work-vm \
--to=dgilbert@redhat.com \
--cc=anthony.perard@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.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).