On Thu, Aug 18, 2016 at 04:00:14PM +0200, Andrew Jones wrote: > Hi all, > > We've recently started versioning mach-virt, v2.6 was the first versioned > release. As an effort to try and make sure we're doing things right, I > tried the vmstate-static-checker.py script. I compared a 2.6 machine > from a QEMU built from the v2.6.0 tag with a 2.6 machine from a QEMU > built from today's latest pull (5844365fe8). I see lots of errors. I have > no experience in this area, so I can't even state whether they're truly > a concern or not. I can say a few things; > > 1) Most of the errors look like the same problem. Something is wrong > with xilinx_spi state, which shows up everywhere. Here's an example > > Section "en25q64", Description "xilinx_spi": expected field > "nonvolatile_cfg", got "cur_addr"; skipping rest > > 2) Several of the remaining problems are also present on a check of the > x86_64 pc-i440fx-2.6 machine type. To be precise > > Section "am53c974", Description "esp": expected field "cmdlen", got "cmdbuf"; > skipping rest > Section "dc390", Description "esp": expected field "cmdlen", got "cmdbuf"; > skipping rest > Section "e1000-82544gc", Description "e1000": expected field "tx.ipcss", got > "tx.props.ipcss"; skipping rest > Section "e1000-82545em", Description "e1000": expected field "tx.ipcss", got > "tx.props.ipcss"; skipping rest > Section "e1000", Description "e1000": expected field "tx.ipcss", got > "tx.props.ipcss"; skipping rest > Section "esp", Description "esp": expected field "cmdlen", got "cmdbuf"; > skipping rest > Section "rtl8139", Description "rtl8139": expected field "tally_counters", > got "tally_counters.TxOk"; skipping rest > > x86 only has three additional messages, which look harmless to me > > Section "apic-common" does not exist in dest > Section "apic" does not exist in dest > Section "kvm-apic" does not exist in dest > > 3) I analyzed one error I saw, and see it should be fine, as the device > simply went from unmigratable to migratable (for TCG anyway) > > Section "arm-gicv3-common" Section "arm-gicv3-common" Description > "arm_gicv3": minimum version error: 0 < 1 > > > Any help with this would be appreciated. I probably won't be looking into > it myself, at least not any time soon. So, IOW, this mail is really just a > bug report, not a progress report :-) > > Steps I did and full output attached.
Sigh... forgot to actually attach. Am now. > > Thanks, > drew >
# Run with build of v2.6.0 tag x86_64-softmmu/qemu-system-x86_64 -M pc-i440fx-2.6 -dump-vmstate x86_64.v2.6 aarch64-softmmu/qemu-system-aarch64 -M virt-2.6 -dump-vmstate aarch64.v2.6 # Run with latest QEMU build x86_64-softmmu/qemu-system-x86_64 -M pc-i440fx-2.6 -dump-vmstate x86_64.latest aarch64-softmmu/qemu-system-aarch64 -M virt-2.6 -dump-vmstate aarch64.latest # x86_64 pc static checker output ../qemu/scripts/vmstate-static-checker.py -s x86_64.v2.6 -d x86_64.latest Section "e1000-82544gc", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "rtl8139", Description "rtl8139": expected field "tally_counters", got "tally_counters.TxOk"; skipping rest Section "esp", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "dc390", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "e1000-82545em", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "apic-common" does not exist in dest Section "apic" does not exist in dest Section "am53c974", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "kvm-apic" does not exist in dest Section "e1000", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest # AArch64 mach-virt static checker output # Note1: The 'grep -v' is used to avoid over 100 lines like # Section "<DEVICE>", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest # which all seem to be the same issue. Unfiltered output below. # Note2: I think the arm-gicv3-common error should be fine, as that # device simply went from unmigratable to migratable (for TCG). ../qemu/scripts/vmstate-static-checker.py -s aarch64.v2.6 -d aarch64.latest | grep -v xilinx_spi Section "e1000-82544gc", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "aspeed.timer" Description "aspeed.timer": minimum version error: 1 < 2 Section "aspeed.timer" Description "aspeed.timer": version error: 1 > 0 Section "aspeed.timer", Description "aspeed.timer", Field "timer": missing description Section "esp", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "rtl8139", Description "rtl8139": expected field "tally_counters", got "tally_counters.TxOk"; skipping rest Section "dc390", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "imx.fec" Section "imx.fec" Description "imx.fec": minimum version error: 1 < 2 Section "imx.fec", Description "imx.fec": expected field "irq_state", got "regs"; skipping rest Section "e1000-82545em", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "arm-gicv3-common" Section "arm-gicv3-common" Description "arm_gicv3": minimum version error: 0 < 1 Section "am53c974", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "imx.gpt" does not exist in dest Section "e1000", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest # AArch64 mach-virt, the unfiltered check ../qemu/scripts/vmstate-static-checker.py -s aarch64.v2.6 -d aarch64.latest Section "en25q64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m45pe16", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25pe20", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl016k", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q32dw", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "e1000-82544gc", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "gd25q32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x80", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p20", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p80", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q256a13", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q256a11", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25px32-s0", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25df321a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25wf020", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "aspeed.timer" Description "aspeed.timer": minimum version error: 1 < 2 Section "aspeed.timer" Description "aspeed.timer": version error: 1 > 0 Section "aspeed.timer", Description "aspeed.timer", Field "timer": missing description Section "en25f32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "640s33b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p05", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l25635e", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x16", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "esp", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "w25x10", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "rtl8139", Description "rtl8139": expected field "tally_counters", got "tally_counters.TxOk"; skipping rest Section "en25p64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q256", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl512s", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl004a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x20", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l4005a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q032", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl032a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25vf016b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25vf080b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl032p", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l12855e", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25df641", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m45pe80", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "dc390", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "at25df041a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p16", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p10", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l3205d", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "en25p32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25wf080", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at26df081a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25fs040", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25wf512", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m45pe10", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l8005", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25wf010", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x40", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25vf032b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "imx.fec" Section "imx.fec" Description "imx.fec": minimum version error: 1 < 2 Section "imx.fec", Description "imx.fec": expected field "irq_state", got "regs"; skipping rest Section "mx25l6405d", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "e1000-82545em", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "n25q032a13", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q032a11", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l25655e", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl256s0", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl256s1", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s70fl01gs", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p128", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl064k", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "gd25q64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q064", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25vf040b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q80", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q512a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25px64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l2005a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25pe80", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25256a-nonjedec", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25128a-nonjedec", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25px32-s1", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25x64", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl016a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25pe16", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "160s33b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25p40", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "arm-gicv3-common" Section "arm-gicv3-common" Description "arm_gicv3": minimum version error: 0 < 1 Section "am53c974", Description "esp": expected field "cmdlen", got "cmdbuf"; skipping rest Section "n25q128", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at25fs010", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at26df321", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q064a13", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "imx.gpt" does not exist in dest Section "s25sl12800", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl12801", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "sst25wf040", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl008a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l1606e", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at26df161a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "mx25l12805d", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q256a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "320s33b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at45db081d", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "at26f004", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q064a11", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "e1000", Description "e1000": expected field "tx.ipcss", got "tx.props.ipcss"; skipping rest Section "s25sl064a", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q128a13", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "n25q128a11", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "w25q80bl", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25sl064p", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl129p0", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "s25fl129p1", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "m25px32", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest Section "en25q32b", Description "xilinx_spi": expected field "nonvolatile_cfg", got "cur_addr"; skipping rest
