* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue [not found] ` <201210220904.31653.hahn@univention.de> @ 2012-10-22 11:23 ` Avi Kivity 2012-10-23 20:38 ` Doug Goldstein ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Avi Kivity @ 2012-10-22 11:23 UTC (permalink / raw) To: Philipp Hahn; +Cc: Doug Goldstein, qemu-devel, KVM mailing list, Juan Quintela On 10/22/2012 09:04 AM, Philipp Hahn wrote: > Hello Doug, > > On Saturday 20 October 2012 00:46:43 Doug Goldstein wrote: >> I'm using libvirt 0.10.2 and I had qemu-kvm 1.1.1 running all my VMs. > ... >> I had upgraded to qemu-kvm 1.1.2 > ... >> qemu: warning: error while loading state for instance 0x0 of device 'ram' >> load of migration failed > > That error can be from many things. For me it was that the PXE-ROM images for > the network cards were updated as well. Their size changed over the next > power-of-two size, so kvm needed to allocate less/more memory and changed > some PCI configuration registers, where the size of the ROM region is stored. > On loading the saved state those sizes were compared and failed to validate. > KVM then aborts loading the saved state with that little helpful message. > > So you might want to check, if your case is similar to mine. > > I diagnosed that using gdb to single step kvm until I found > hw/pci.c#get_pci_config_device() returning -EINVAL. > Seems reasonable. Doug, please verify to see if it's the same issue or another one. Juan, how can we fix this? It's clear that the option ROM size has to be fixed and not change whenever the blob is updated. This will fix it for future releases. But what to do about the ones in the field? -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 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 2012-10-29 6:22 ` Doug Goldstein 2012-11-04 21:51 ` Anthony Liguori 2 siblings, 1 reply; 7+ messages in thread From: Doug Goldstein @ 2012-10-23 20:38 UTC (permalink / raw) To: Avi Kivity; +Cc: Juan Quintela, qemu-devel, KVM mailing list, Philipp Hahn On Mon, Oct 22, 2012 at 6:23 AM, Avi Kivity <avi@redhat.com> wrote: > On 10/22/2012 09:04 AM, Philipp Hahn wrote: >> Hello Doug, >> >> On Saturday 20 October 2012 00:46:43 Doug Goldstein wrote: >>> I'm using libvirt 0.10.2 and I had qemu-kvm 1.1.1 running all my VMs. >> ... >>> I had upgraded to qemu-kvm 1.1.2 >> ... >>> qemu: warning: error while loading state for instance 0x0 of device 'ram' >>> load of migration failed >> >> That error can be from many things. For me it was that the PXE-ROM images for >> the network cards were updated as well. Their size changed over the next >> power-of-two size, so kvm needed to allocate less/more memory and changed >> some PCI configuration registers, where the size of the ROM region is stored. >> On loading the saved state those sizes were compared and failed to validate. >> KVM then aborts loading the saved state with that little helpful message. >> >> So you might want to check, if your case is similar to mine. >> >> I diagnosed that using gdb to single step kvm until I found >> hw/pci.c#get_pci_config_device() returning -EINVAL. >> > > Seems reasonable. Doug, please verify to see if it's the same issue or > another one. Sorry it took a little bit to juggle the break points with libvirt and qemu to get gdb attached correctly. 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. > > Juan, how can we fix this? It's clear that the option ROM size has to > be fixed and not change whenever the blob is updated. This will fix it > for future releases. But what to do about the ones in the field? > Any recommendations to fix this? Or do I need to kill the saved state and start over? Thanks. -- Doug Goldstein ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 2012-10-23 20:38 ` Doug Goldstein @ 2012-10-24 6:59 ` Philipp Hahn 0 siblings, 0 replies; 7+ messages in thread From: Philipp Hahn @ 2012-10-24 6:59 UTC (permalink / raw) To: Doug Goldstein; +Cc: qemu-devel, Avi Kivity, KVM mailing list, Juan Quintela [-- 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 --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 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-29 6:22 ` Doug Goldstein 2012-11-04 21:51 ` Anthony Liguori 2 siblings, 0 replies; 7+ messages in thread From: Doug Goldstein @ 2012-10-29 6:22 UTC (permalink / raw) To: Avi Kivity; +Cc: Juan Quintela, qemu-devel, KVM mailing list, Philipp Hahn On Mon, Oct 22, 2012 at 6:23 AM, Avi Kivity <avi@redhat.com> wrote: > On 10/22/2012 09:04 AM, Philipp Hahn wrote: >> Hello Doug, >> >> On Saturday 20 October 2012 00:46:43 Doug Goldstein wrote: >>> I'm using libvirt 0.10.2 and I had qemu-kvm 1.1.1 running all my VMs. >> ... >>> I had upgraded to qemu-kvm 1.1.2 >> ... >>> qemu: warning: error while loading state for instance 0x0 of device 'ram' >>> load of migration failed >> >> That error can be from many things. For me it was that the PXE-ROM images for >> the network cards were updated as well. Their size changed over the next >> power-of-two size, so kvm needed to allocate less/more memory and changed >> some PCI configuration registers, where the size of the ROM region is stored. >> On loading the saved state those sizes were compared and failed to validate. >> KVM then aborts loading the saved state with that little helpful message. >> >> So you might want to check, if your case is similar to mine. >> >> I diagnosed that using gdb to single step kvm until I found >> hw/pci.c#get_pci_config_device() returning -EINVAL. >> > > Seems reasonable. Doug, please verify to see if it's the same issue or > another one. > > Juan, how can we fix this? It's clear that the option ROM size has to > be fixed and not change whenever the blob is updated. This will fix it > for future releases. But what to do about the ones in the field? > > -- > error compiling committee.c: too many arguments to function Avi, Please consider the following patch based off qemu master: http://article.gmane.org/gmane.comp.emulators.kvm.devel/100231 It should hopefully help users with this issue in the future. -- Doug Goldstein ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 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-29 6:22 ` Doug Goldstein @ 2012-11-04 21:51 ` Anthony Liguori 2012-11-05 5:41 ` Doug Goldstein 2 siblings, 1 reply; 7+ messages in thread From: Anthony Liguori @ 2012-11-04 21:51 UTC (permalink / raw) To: Avi Kivity, Philipp Hahn Cc: Doug Goldstein, qemu-devel, KVM mailing list, Juan Quintela Avi Kivity <avi@redhat.com> writes: > On 10/22/2012 09:04 AM, Philipp Hahn wrote: >> Hello Doug, >> >> On Saturday 20 October 2012 00:46:43 Doug Goldstein wrote: >>> I'm using libvirt 0.10.2 and I had qemu-kvm 1.1.1 running all my VMs. >> ... >>> I had upgraded to qemu-kvm 1.1.2 >> ... >>> qemu: warning: error while loading state for instance 0x0 of device 'ram' >>> load of migration failed >> >> That error can be from many things. For me it was that the PXE-ROM images for >> the network cards were updated as well. Their size changed over the next >> power-of-two size, so kvm needed to allocate less/more memory and changed >> some PCI configuration registers, where the size of the ROM region is stored. >> On loading the saved state those sizes were compared and failed to validate. >> KVM then aborts loading the saved state with that little helpful message. >> >> So you might want to check, if your case is similar to mine. >> >> I diagnosed that using gdb to single step kvm until I found >> hw/pci.c#get_pci_config_device() returning -EINVAL. >> > > Seems reasonable. Doug, please verify to see if it's the same issue or > another one. > > Juan, how can we fix this? It's clear that the option ROM size has to > be fixed and not change whenever the blob is updated. This will fix it > for future releases. But what to do about the ones in the field? This is not a problem upstream because we don't alter the ROMs. If we did, we would keep the old ROMs around and set the romfile property in the compatible machine. This is what distros that are shipping ROMs outside of QEMU ought to do. It's a bug to unconditionally change the ROMs (in a guest visible way) without adding compatibility support. Regards, Anthony Liguori > > -- > error compiling committee.c: too many arguments to function > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 2012-11-04 21:51 ` Anthony Liguori @ 2012-11-05 5:41 ` Doug Goldstein 2012-11-06 15:05 ` Juan Quintela 0 siblings, 1 reply; 7+ messages in thread From: Doug Goldstein @ 2012-11-05 5:41 UTC (permalink / raw) To: Anthony Liguori Cc: qemu-devel, Juan Quintela, Avi Kivity, KVM mailing list, Philipp Hahn On Sun, Nov 4, 2012 at 3:51 PM, Anthony Liguori <anthony@codemonkey.ws> wrote: > Avi Kivity <avi@redhat.com> writes: > >> On 10/22/2012 09:04 AM, Philipp Hahn wrote: >>> Hello Doug, >>> >>> On Saturday 20 October 2012 00:46:43 Doug Goldstein wrote: >>>> I'm using libvirt 0.10.2 and I had qemu-kvm 1.1.1 running all my VMs. >>> ... >>>> I had upgraded to qemu-kvm 1.1.2 >>> ... >>>> qemu: warning: error while loading state for instance 0x0 of device 'ram' >>>> load of migration failed >>> >>> That error can be from many things. For me it was that the PXE-ROM images for >>> the network cards were updated as well. Their size changed over the next >>> power-of-two size, so kvm needed to allocate less/more memory and changed >>> some PCI configuration registers, where the size of the ROM region is stored. >>> On loading the saved state those sizes were compared and failed to validate. >>> KVM then aborts loading the saved state with that little helpful message. >>> >>> So you might want to check, if your case is similar to mine. >>> >>> I diagnosed that using gdb to single step kvm until I found >>> hw/pci.c#get_pci_config_device() returning -EINVAL. >>> >> >> Seems reasonable. Doug, please verify to see if it's the same issue or >> another one. >> >> Juan, how can we fix this? It's clear that the option ROM size has to >> be fixed and not change whenever the blob is updated. This will fix it >> for future releases. But what to do about the ones in the field? > > This is not a problem upstream because we don't alter the ROMs. If we > did, we would keep the old ROMs around and set the romfile property in > the compatible machine. > > This is what distros that are shipping ROMs outside of QEMU ought to > do. It's a bug to unconditionally change the ROMs (in a guest visible > way) without adding compatibility support. > > Regards, > > Anthony Liguori > Anthony, Gerd updated seabios on August 7th and before that on April 17. The default VGA ROM size also changed in recent releases. There are no old versions of the ROMs included once these updates are performed so a user building a new version from source will hit this problem. Juan Quintela even mentioned that he has been bit by this issue and had to use gdb to track it down as did Philipp that responded earlier in the thread. The patch is a simple fprintf() which would have saved at least 3 users the effort of tracking down an issue with gdb. So I urge you to reconsider. Thanks. -- Doug Goldstein ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] 1.1.1 -> 1.1.2 migrate /managedsave issue 2012-11-05 5:41 ` Doug Goldstein @ 2012-11-06 15:05 ` Juan Quintela 0 siblings, 0 replies; 7+ messages in thread From: Juan Quintela @ 2012-11-06 15:05 UTC (permalink / raw) To: Doug Goldstein Cc: qemu-devel, KVM mailing list, Avi Kivity, Anthony Liguori, Philipp Hahn Doug Goldstein <cardoe@gentoo.org> wrote: > On Sun, Nov 4, 2012 at 3:51 PM, Anthony Liguori <anthony@codemonkey.ws> wrote: >>> >>> Seems reasonable. Doug, please verify to see if it's the same issue or >>> another one. >>> >>> Juan, how can we fix this? It's clear that the option ROM size has to >>> be fixed and not change whenever the blob is updated. This will fix it >>> for future releases. But what to do about the ones in the field? >> >> This is not a problem upstream because we don't alter the ROMs. If we >> did, we would keep the old ROMs around and set the romfile property in >> the compatible machine. >> >> This is what distros that are shipping ROMs outside of QEMU ought to >> do. It's a bug to unconditionally change the ROMs (in a guest visible >> way) without adding compatibility support. >> >> Regards, >> >> Anthony Liguori >> > > Anthony, > > Gerd updated seabios on August 7th and before that on April 17. The > default VGA ROM size also changed in recent releases. There are no old > versions of the ROMs included once these updates are performed so a > user building a new version from source will hit this problem. Juan > Quintela even mentioned that he has been bit by this issue and had to > use gdb to track it down as did Philipp that responded earlier in the > thread. The patch is a simple fprintf() which would have saved at > least 3 users the effort of tracking down an issue with gdb. So I urge > you to reconsider. I hit this problem. But it was a bug, the problem was to detect it. The problem was doing migration to an old version, we now "round" the RAM amount to a multiple of 8k. If your old ram memory was mulitple of 4k, you get this prolbem with migration. And it only prints "migration failed". Printing a message telling that: memory size of %foo is %d and expected %d would have make error trivial to found. Later, Juan. PD. Problem was really a bit more complex than this, this is a simplification. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-11-06 15:05 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [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 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
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).