From: Philipp Hahn <hahn@univention.de>
To: Doug Goldstein <cardoe@gentoo.org>
Cc: qemu-devel <qemu-devel@nongnu.org>, Avi Kivity <avi@redhat.com>,
KVM mailing list <kvm@vger.kernel.org>,
Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue
Date: Wed, 24 Oct 2012 08:59:28 +0200 [thread overview]
Message-ID: <201210240859.32887.hahn@univention.de> (raw)
In-Reply-To: <CAFWqQMSm4wf0CzdyFt=uDYmBCiZ5V_o8d5=T8vKPT2JQ+dOXyw@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2323 bytes --]
Hello Doug,
On Tuesday 23 October 2012 22:38:47 Doug Goldstein wrote:
> >>> qemu: warning: error while loading state for instance 0x0 of device
> >>> 'ram' load of migration failed
...
> >> I diagnosed that using gdb to single step kvm until I found
> >> hw/pci.c#get_pci_config_device() returning -EINVAL.
...
> But yes I can confirm that
> vmstate_load_state() which is calling field->info->get() which is
> calling get_pci_config_device() is returning -EINVAL.
...
> Any recommendations to fix this? Or do I need to kill the saved state
> and start over?
For start try to re-get the old PXE ROM files, that is for Debian re-install
the old etherboot-qemu or an older Version of the ipxe-qemu package. If that
then works again, you can go further. Otherwise you need to get the exact
index "i" where get_pci_config_device() returns -EINVAL and match that with
the PCI spec. For short see hw/pci_regs.h.
For our Debian based UCS distribution I patched qemu(-kvm) to use the old
image files (which are still available and installed in parallel to the new
files) if the pc-level is 0.14 or lower (which is the version we currently
ship; only our next release will switch to 1.1.2).
I've attached my patch FYI. That is only a work around until QEMU provides a
real solution. If you've used an e1000, that is not enougth because some more
PCI configuration bits (PCI_STATUS_CAP_LIST) were changed in an incompatible
way.
If I remember correctly there was a different bug report, where changed PCI
bits were also responsible for breaking saved states: Some PCI devices were
changed to multi-function devices (or the other way around), which also
breaks loading of previous saved stated. I think it was a bug in libvirt
which started adding an explicit "multifunction=on", while the save was done
using an implicit "multifinction=off".
(<https://forge.univention.org/bugzilla/show_bug.cgi?id=22877#c6> in our
German BZ)
Sincerely
Philipp Hahn
--
Philipp Hahn Open Source Software Engineer hahn@univention.de
Univention GmbH be open. fon: +49 421 22 232- 0
Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99
http://www.univention.de/
[-- Attachment #1.2: 0002-Bug-24702-Rom-file-compatibility.patch --]
[-- Type: text/x-diff, Size: 2942 bytes --]
diff -urN qemu-kvm-1.1.2+dfsg.orig/debian/patches/romfile-compatibility.diff qemu-kvm-1.1.2+dfsg/debian/patches/romfile-compatibility.diff
--- qemu-kvm-1.1.2+dfsg.orig/debian/patches/romfile-compatibility.diff 1970-01-01 01:00:00.000000000 +0100
+++ qemu-kvm-1.1.2+dfsg/debian/patches/romfile-compatibility.diff 2012-10-08 14:25:09.225656404 +0200
@@ -0,0 +1,39 @@
+Bug #24702: Fix PXE ROM size mismatch
+
+For pc-0.14 and older use the PXE ROMs from the deprecated etherboot-qemu
+package, which have different sizes. Without the patch the virtual PC gets
+build with the current ROM sizes. Loading then fails because the stored PCI ROM
+BAR size mismatches the configured size.
+--- a/hw/pc_piix.c
++++ b/hw/pc_piix.c
+@@ -433,6 +433,30 @@ static QEMUMachine pc_machine_v0_15 = {
+ .driver = "virtio-balloon-pci",\
+ .property = "event_idx",\
+ .value = "off",\
++ },{\
++ .driver = "ne2000",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/rtl8029.rom",\
++ },{\
++ .driver = "rtl8139",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/rtl8139.rom",\
++ },{\
++ .driver = "e1000",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/e1000-82540em.rom",\
++ },{\
++ .driver = "pcnet",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/pcnet32.rom",\
++ },{\
++ .driver = "ne2k-isa",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/ne.rom",\
++ },{\
++ .driver = "virtio-net-pci",\
++ .property = "romfile",\
++ .value = "/usr/lib/etherboot/virtio-net.rom",\
+ }
+
+ static QEMUMachine pc_machine_v0_14 = {
diff -urN qemu-kvm-1.1.2+dfsg.orig/debian/patches/series qemu-kvm-1.1.2+dfsg/debian/patches/series
--- qemu-kvm-1.1.2+dfsg.orig/debian/patches/series 2012-09-10 12:14:05.000000000 +0200
+++ qemu-kvm-1.1.2+dfsg/debian/patches/series 2012-10-08 14:24:51.497155189 +0200
@@ -8,3 +8,4 @@
net-add--netdev-options-to-man-page.patch
revert-serial-fix-retry-logic.patch
+romfile-compatibility.diff
diff -urN qemu-kvm-1.1.2+dfsg.orig/debian/control qemu-kvm-1.1.2+dfsg/debian/control
--- qemu-kvm-1.1.2+dfsg.orig/debian/control 2012-09-11 08:29:43.000000000 +0200
+++ qemu-kvm-1.1.2+dfsg/debian/control 2012-10-08 15:06:39.201155102 +0200
@@ -37,7 +37,8 @@
seabios (>> 1.7.0~), vgabios (>= 0.6c-3~),
qemu-keymaps, qemu-utils (>> 0.14.0),
ipxe-qemu | ipxe (<< 1.0.0+git-20120202.f6840ba-2)
-Recommends: bridge-utils, iproute
+Recommends: bridge-utils, iproute,
+ etherboot-qemu
Suggests: debootstrap, vde2, samba
Provides: kvm
Conflicts: kvm-source (<= 18-1), kvm-data (<= 66+dfsg-1.1), kvm (<< 1:0)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2012-10-24 6:59 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAFWqQMRAOuw3sDWDC1cGofuvWNiAffiL5MpRqFnuihQizr9+vg@mail.gmail.com>
[not found] ` <201210220904.31653.hahn@univention.de>
2012-10-22 11:23 ` [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue Avi Kivity
2012-10-23 20:38 ` Doug Goldstein
2012-10-24 6:59 ` Philipp Hahn [this message]
2012-10-29 6:22 ` Doug Goldstein
2012-11-04 21:51 ` Anthony Liguori
2012-11-05 5:41 ` Doug Goldstein
2012-11-06 15:05 ` Juan Quintela
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=201210240859.32887.hahn@univention.de \
--to=hahn@univention.de \
--cc=avi@redhat.com \
--cc=cardoe@gentoo.org \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.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 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).