All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org, pannengyuan@huawei.com,
	maozhongyi@cmss.chinamobile.com, vsementsov@virtuozzo.com,
	imammedo@redhat.com, philmd@redhat.com
Subject: [PULL 6/9] vl.c: fix migration failure for 3.1 and older machine types
Date: Wed, 25 Mar 2020 13:16:29 +0000	[thread overview]
Message-ID: <20200325131632.311034-7-dgilbert@redhat.com> (raw)
In-Reply-To: <20200325131632.311034-1-dgilbert@redhat.com>

From: Igor Mammedov <imammedo@redhat.com>

Migration from QEMU(v4.0) fails when using 3.1 or older machine
type. For example if one attempts to migrate
QEMU-2.12 started as
  qemu-system-ppc64 -nodefaults -M pseries-2.12 -m 4096 -mem-path /tmp/
to current master, it will fail with
  qemu-system-ppc64: Unknown ramblock "ppc_spapr.ram", cannot accept migration
  qemu-system-ppc64: error while loading state for instance 0x0 of device 'ram'
  qemu-system-ppc64: load of migration failed: Invalid argument

Caused by 900c0ba373 commit which switches main RAM allocation to
memory backends and the fact in 3.1 and older QEMU, backends used
full[***] QOM path as memory region name instead of backend's name.
That was changed after 3.1 to use prefix-less names by default
(fa0cb34d22) for new machine types.
*** effectively makes main RAM memory region names defined by
MachineClass::default_ram_id being altered with '/objects/' prefix
and therefore migration fails as old QEMU sends prefix-less
name while new QEMU expects name with prefix when using 3.1 and
older machine types.

Fix it by forcing implicit[1] memory backend to always use
prefix-less names for its memory region by setting
  'x-use-canonical-path-for-ramblock-id'
property to false.

1) i.e. memory backend created by compat glue which maps
-m/-mem-path/-mem-prealloc/default RAM size into
appropriate backend type/options to match old CLI format.

Fixes: 900c0ba373
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reported-by: Lukáš Doktor <ldoktor@redhat.com>
Message-Id: <20200304172748.15338-1-imammedo@redhat.com>
Tested-by: Lukáš Doktor <ldoktor@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 softmmu/vl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/softmmu/vl.c b/softmmu/vl.c
index 1d33a28340..814537bb42 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -2801,6 +2801,9 @@ static void create_default_memdev(MachineState *ms, const char *path)
     object_property_set_int(obj, ms->ram_size, "size", &error_fatal);
     object_property_add_child(object_get_objects_root(), mc->default_ram_id,
                               obj, &error_fatal);
+    /* Ensure backend's memory region name is equal to mc->default_ram_id */
+    object_property_set_bool(obj, false, "x-use-canonical-path-for-ramblock-id",
+                             &error_fatal);
     user_creatable_complete(USER_CREATABLE(obj), &error_fatal);
     object_unref(obj);
     object_property_set_str(OBJECT(ms), mc->default_ram_id, "memory-backend",
-- 
2.25.1



  parent reply	other threads:[~2020-03-25 13:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-25 13:16 [PULL 0/9] migration queue Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 1/9] hmp-cmd: fix a missing_break warning Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 2/9] xbzrle: update xbzrle doc Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 3/9] tests/migration: Reduce autoconverge initial bandwidth Dr. David Alan Gilbert (git)
2020-06-09 16:36   ` Michael S. Tsirkin
2020-06-09 16:45     ` Philippe Mathieu-Daudé
2020-06-09 17:00     ` Dr. David Alan Gilbert
2020-06-09 17:07       ` Philippe Mathieu-Daudé
2020-06-09 18:10       ` Michael S. Tsirkin
2020-03-25 13:16 ` [PULL 4/9] hmp/vnc: Fix info vnc list leak Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 5/9] tools/virtiofsd/passthrough_ll: Fix double close() Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` Dr. David Alan Gilbert (git) [this message]
2020-03-25 13:16 ` [PULL 7/9] migration/colo: fix use after free of local_err Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 8/9] migration/ram: " Dr. David Alan Gilbert (git)
2020-03-25 13:16 ` [PULL 9/9] migration: use "" instead of (null) for tls-authz Dr. David Alan Gilbert (git)
2020-03-26 10:46 ` [PULL 0/9] migration queue Peter Maydell

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=20200325131632.311034-7-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=maozhongyi@cmss.chinamobile.com \
    --cc=pannengyuan@huawei.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.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.