summary refs log tree commit diff stats
path: root/results/scraper/launchpad/1869426
blob: 3ddec18154928af54bd9cfd22f32dd3ceeca6cd2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
5.0rc0->4.2 serial migraiton

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"
        }
    },

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>


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

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>


Fix posted:
https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg08803.html

Fixed here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=f602d047ac21