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
next prev 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 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).