5.0rc0->4.2 serial migraiton

Bug #1869426 reported by Dr. David Alan Gilbert
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Migrating from 5.0rc0->4.2 with pc-q35-4.2 we get an error:

Unknown savevm section or instance 'serial' 1

dumping the migration streams it looks like 5.0 is duplicating the serial migration data:

    "serial (26)": {
        "divider": "0x000c",
        "rbr": "0x00",
        "ier": "0x00",
        "iir": "0x01",
        "lcr": "0x00",
        "mcr": "0x00",
        "lsr": "0x60",
        "msr": "0xb0",
        "scr": "0x00",
        "fcr_vmstate": "0x00"
    },
    "serial (27)": {
        "state": {
            "divider": "0x000c",
            "rbr": "0x00",
            "ier": "0x00",
            "iir": "0x01",
            "lcr": "0x00",
            "mcr": "0x00",
            "lsr": "0x60",
            "msr": "0xb0",
            "scr": "0x00",
            "fcr_vmstate": "0x00"
        }
    },

Revision history for this message
Dr. David Alan Gilbert (dgilbert-h) wrote :

git bisect says:

c9808d602813bce4fada7bf9ecc463aa779b73f7 is the first bad commit
commit c9808d602813bce4fada7bf9ecc463aa779b73f7
Author: Marc-André Lureau <email address hidden>
Date: Tue Oct 22 01:02:50 2019 +0200

    serial: realize the serial device

    Instead of calling serial_realize_core(), use the QDev realize
    callback.

    Signed-off-by: Marc-André Lureau <email address hidden>
    Reviewed-by: Philippe Mathieu-Daudé <email address hidden>

Revision history for this message
Dr. David Alan Gilbert (dgilbert-h) wrote :

Marc-Andre: I think you're ending up with two top level objects with vmsd's

Revision history for this message
elmarco (marcandre-lureau) wrote :

I thought backward migration wasn't supported.

Isn't it this commit?

commit 4cc017e505df7e5344e4dfe7fc17711117c5f11f
Author: Marc-André Lureau <email address hidden>
Date: Tue Oct 22 00:32:41 2019 +0200

    serial: register vmsd with DeviceClass

    Migration from old to new code works, however the other way fails for
    devices that use serial_init/serial_mm_init with "base", used as
    instance_id previously.

    (with qdev_set_legacy_instance_id, the alias_id is only used in
    savevm.c:find_se(), and thus can only be used to match against
    "legacy" instance id values. On new code, instance_id is generated
    incrementally from 0 with calculate_new_instance_id(), based on
    "qdev-path/vmsd-name")

    Signed-off-by: Marc-André Lureau <email address hidden>
    Reviewed-by: xiaoqiang zhao <zxq_yx_007@163.com>

Revision history for this message
Dr. David Alan Gilbert (dgilbert-h) wrote :
Revision history for this message
Laurent Vivier (laurent-vivier) wrote :
Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.