All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Alex Bligh <alex@alex.org.uk>
Cc: "Ryan Harper" <ryan.harper@canonical.com>,
	"Serge Hallyn" <serge.hallyn@canonical.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Libvirt <libvir-list@redhat.com>,
	"Serge Hallyn" <serge.hallyn@ubuntu.com>,
	qemu-devel@nongnu.org, "Alexander Graf" <agraf@suse.de>,
	"quintela@redhat.com" <quintela@redhat.com>,
	"Cole Robinson" <crobinso@redhat.com>,
	"Amit Shah" <amit.shah@redhat.com>,
	"Bruce Rogers" <brogers@suse.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Serge E. Hallyn" <serge@hallyn.com>
Subject: Re: [Qemu-devel] [PATCH v4] Add machine parameter qemu-kvm-migration for live migrate compatibility with qemu-kvm
Date: Wed, 24 Sep 2014 10:05:19 +0200	[thread overview]
Message-ID: <87a95p78ao.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <1411414496-46245-1-git-send-email-alex@alex.org.uk> (Alex Bligh's message of "Mon, 22 Sep 2014 20:34:55 +0100")

Alex Bligh <alex@alex.org.uk> writes:

> This patch series adds inbound migrate capability from qemu-kvm version
> 1.0. The main ideas are those set out in Cole Robinson's patch here:
> http://pkgs.fedoraproject.org/cgit/qemu.git/tree/0001-Fix-migration-from-qemu-kvm.patch?h=f20
> however, rather than patching statically (and breaking inbound
> migration on existing machine types), I have added a new machine
> parameter (qemu-kvm-migration) which when turned on affects the pc-1.0
> machine type. Usage:
>         -machine pc-1.0,qemu-kvm-migration=on

Forgive me if this has been discussed already: why not simply a separate
machine type "pc-1.0-qemu-kvm"?

> Three aproaches are taken:
>
> * cirrus-vga.vgamem_mb defaults to 16 rather than 8. In	order to
>   keep -global cirrus-vga.vgamem_mb working even with
>   qemu-kvm-migration=on, this is monkey-patched	 into the default
>   value			 of the MachineState structure's  compat_props list.

This part fires only for pc-1.0, because it's in
pc_early_init_pci_1_0().

> * In hw/timer/i8254_common.c, the VMSTATE_UINT32_TEST macro
>   is used to test the version for the irq_disable flags,
>   allowing version 3 or more, or version 2 for an inbound
>   migrate from qemu-kvm (only).
>
> * In hw/acpi/piix4.c, qemu-kvm incorrectly uses version 2 for
>   a version 3 structure, causing acpi_load_old to be used.
>   acpi_load_old detects this situation based on the machine type
>   and restarts the attempt to load the vmstate using a
>   customised VMStateDescription. The above cleaner approach is
>   unavailable here.

These parts apply to all machine types, don't they?

> The above monkey-patching must be done between the selection of
> the MachineClass and the processing of the machine parameters
> (on the		 one hand) and the processing of   the compat_props list
> and the		 globals   on the command line. To do this	    I have added
> an earlyinit function to MachineState and QEMUMachine.
>
> I developed this on qemu 2.0 but have forward ported it (trivially)
> to master. My testing has been on a VM live-migrated-to-file from
> Ubuntu Precise qemu-kvm 1.0.
>
> I have given this a moderate degree of testing but it could do
> with more.
>
> Note that certain hardware devices (including QXL) will not
> migrate properly due to a fundamental difference in their internal
> state between versions.
>
> Also note that (as expected) migration from qemu-2.x to qemu-1.0
> will not work, even if the machine types are the same.
>
> Changes since v1:
> * Do not use a machine type, use a machine parameter.

Okay, it has been discussed already.  I'd appreciate a brief recap all
the same.

  parent reply	other threads:[~2014-09-24  8:05 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-22 19:34 [Qemu-devel] [PATCH v4] Add machine parameter qemu-kvm-migration for live migrate compatibility with qemu-kvm Alex Bligh
2014-09-22 19:34 ` Alex Bligh
2014-09-28 15:30   ` Michael S. Tsirkin
2014-09-28 20:33     ` Alex Bligh
2014-09-29  7:02       ` Markus Armbruster
2014-10-05  7:00         ` Paolo Bonzini
2014-10-05 10:26           ` Alex Bligh
2014-10-05 12:26             ` Paolo Bonzini
2014-10-05 12:48               ` Michael S. Tsirkin
2014-10-05 13:30                 ` Paolo Bonzini
2014-09-29 10:08       ` Michael S. Tsirkin
2014-09-29 10:13         ` Alex Bligh
2014-09-29 14:52           ` Serge E. Hallyn
2014-10-04 16:29     ` Alex Bligh
2014-09-24  8:05 ` Markus Armbruster [this message]
2014-09-24  8:29   ` Alex Bligh
2014-09-24  8:38 ` Michael Tokarev
2014-09-25  8:02   ` Dr. David Alan Gilbert

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=87a95p78ao.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=alex@alex.org.uk \
    --cc=amit.shah@redhat.com \
    --cc=brogers@suse.com \
    --cc=crobinso@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=ryan.harper@canonical.com \
    --cc=serge.hallyn@canonical.com \
    --cc=serge.hallyn@ubuntu.com \
    --cc=serge@hallyn.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.