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

Reply via email to