Patchwork migrate: error message for ram_load size

login
register
mail settings
Submitter Doug Goldstein
Date Nov. 3, 2012, 4:22 p.m.
Message ID <1351959772-21473-1-git-send-email-cardoe@cardoe.com>
Download mbox | patch
Permalink /patch/196884/
State New
Headers show

Comments

Doug Goldstein - Nov. 3, 2012, 4:22 p.m.
Report an error when ramblock's sizes mismatch with a suggestion to the
user as to what went wrong. If a user has a managedsave state by
libvirt, which is the default now, and upgrades their distro, which in
turn upgrades QEMU, they will be surprised by the fact that their VMs fail
to start. The reason for this is that the default ROM sizes changed
recently which makes it not possible to migrate from that saved state.
However the error message really does not provide details as to what
went wrong. This patch attempts to provide more details

see:
http://lists.nongnu.org/archive/html/qemu-devel/2012-10/msg03746.html
http://lists.nongnu.org/archive/html/qemu-devel/2012-10/msg04108.html
---
 arch_init.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Eric Blake - Nov. 5, 2012, 3:28 p.m.
On 11/03/2012 10:22 AM, Doug Goldstein wrote:
> Report an error when ramblock's sizes mismatch with a suggestion to the
> user as to what went wrong. If a user has a managedsave state by
> libvirt, which is the default now, and upgrades their distro, which in
> turn upgrades QEMU, they will be surprised by the fact that their VMs fail
> to start. The reason for this is that the default ROM sizes changed
> recently which makes it not possible to migrate from that saved state.
> However the error message really does not provide details as to what
> went wrong. This patch attempts to provide more details
> 
> see:
> http://lists.nongnu.org/archive/html/qemu-devel/2012-10/msg03746.html
> http://lists.nongnu.org/archive/html/qemu-devel/2012-10/msg04108.html
> ---

Missing a Signed-off-by; see
http://wiki.qemu-project.org/Contribute/SubmitAPatch

Patch

diff --git a/arch_init.c b/arch_init.c
index 8c3bb0d..33f783b 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -810,6 +810,11 @@  static int ram_load(QEMUFile *f, void *opaque, int version_id)
                     QLIST_FOREACH(block, &ram_list.blocks, next) {
                         if (!strncmp(id, block->idstr, sizeof(id))) {
                             if (block->length != length) {
+                                fprintf(stderr, "qemu: warning: error ramblock "
+                                        "'%s' length %ld != %ld. Did you "
+                                        "change the ROM/BIOS or RAM size "
+                                        "between restarts?\n", id,
+                                        block->length, length);
                                 ret =  -EINVAL;
                                 goto done;
                             }