On Tue, Apr 29, 2025 at 05:21:40PM +0200, Thomas Huth wrote:
> From: Thomas Huth <th...@redhat.com>
> 
> For automatic tests, we need reference files from older QEMU versions.
> QEMU 7.2 is a long term stable release, so it's a good candidate for
> checking whether the migration could still work correctly. Let's add the
> files from that version that have been taken with the "-dump-vmstate"
> parameter of QEMU (compiled with single machines and the configure switch
> "--without-default-devices" to keep the json files reasonable small).
> 
> Some devices also have been removed manually from the json files, e.g.
> the "pci-bridge" (which can be disabled in later QEMU versions via Kconfig),
> and some Linux-related devices like "scsi-block" and "scsi-generic" and
> KVM-related devices. Without removing them, we might get errors otherwise
> if these devices have not been compiled into the destination QEMU build.
> 
> Signed-off-by: Thomas Huth <th...@redhat.com>
> ---
>  MAINTAINERS                                   |    1 +
>  .../aarch64/virt-7.2.json                     | 2571 +++++++++++++
>  .../vmstate-static-checker/m68k/virt-7.2.json | 2936 ++++++++++++++
>  .../ppc64/pseries-7.2.json                    | 1068 ++++++
>  .../s390x/s390-ccw-virtio-7.2.json            |  475 +++
>  .../x86_64/pc-q35-7.2.json                    | 3402 +++++++++++++++++
>  6 files changed, 10453 insertions(+)
>  create mode 100644 tests/data/vmstate-static-checker/aarch64/virt-7.2.json
>  create mode 100644 tests/data/vmstate-static-checker/m68k/virt-7.2.json
>  create mode 100644 tests/data/vmstate-static-checker/ppc64/pseries-7.2.json
>  create mode 100644 
> tests/data/vmstate-static-checker/s390x/s390-ccw-virtio-7.2.json
>  create mode 100644 tests/data/vmstate-static-checker/x86_64/pc-q35-7.2.json

This looks like an improvement indeed, it so far only covers machine type
7.2, rather than all machine types.  I used to run these by hands before
each release.. and sometimes I forgot.  Before me, I am aware at least Dave
used to run also during softfreezes.

One thing I am wondering is if we can do it the same way as the compat
migration test in CI, so that we always compare with a base (which is the
previous release binary), then move the base after each release.

After all, due to migration-compat-common CI job, we always build the base
version of QEMU already in build-previous-qemu, so we already have two
binaries at hand.  IIUC we only need one new job to generate the two JSON
blobs, and feed them to the checker on both directions.

If that is the case, it might have a benefit that we can cover all the
machines as long as listed on both binaries, then check all of them?

Meanwhile, if we keep the ball rolling for each release (by boosting the
base QEMU binary version), IIUC it guarantees all the new binaries will
make sure to provide compatible VMSDs all across since we start running the
job.

Would that work?

-- 
Peter Xu


Reply via email to