Hi Peter,
On 2026-04-01 16:28, Peter Xu wrote:
> CI: https://gitlab.com/peterx/qemu/-/pipelines/2424266591
> (one checkpatch warning, not relevant to this series)
>
> rfcv1: https://lore.kernel.org/r/20260317232332.15209-1-peterx@redhat.com
> rfcv2: https://lore.kernel.org/r/20260326210532.379027-1-peterx@redhat.com
>
> Changelog rfcv2->v1:
>
> - Rebased to latest fabiano's migration-staging branch (bd698d7730)
> - Collected new tags
> - Patch 1
> - Add space between "_type*" [Phil]
> - Patch 9
> - Slight refactoring on vmstate_load_next() [Fabiano]
> - I collected Alexander's tested-by even if strictly I shouldn't when the
> patch changed; if test fails, it's me to blame.
>
> This is v1, I removed RFC as I we should have reached some form of
> consensus in general. It is based on Fabiano's migration-staging branch.
> I've pushed this tree here for easier reference:
>
> https://gitlab.com/peterx/qemu/-/tree/vmstate-array-null
>
> This series implements a new vmstate flag that allows real dynamic array of
> pointers to be migrated, so that QEMU vmstate core will be able to identify
> NULL and non-NULL pointers pointing to any kind of VMSD (or base types),
> then properly allocate memory for them on dest QEMU.
>
> The first planned user of such is Alexander's NVMe migration series here:
>
> https://lore.kernel.org/r/20260317102708.126725-1-alexander@mihalicyn.com
>
> This is another alternative to solve this problem.
>
> I tested analyze-migration.py with this version and it works with an idle
> dump from the nvme series (after I rebase).
>
> Thanks,
>
> Alexander Mikhalitsyn (1):
> tests/unit/test-vmstate: add tests for VMS_ARRAY_OF_POINTER_AUTO_ALLOC
>
> Fabiano Rosas (1):
> vmstate: Stop checking size for nullptr compression
>
> Peter Xu (9):
> vmstate: Pass in struct itself for VMSTATE_ARRAY_OF_POINTER
> vmstate: Pass in struct itself for VMSTATE_VARRAY_OF_POINTER_UINT32
> vmstate: Do not set size for VMS_ARRAY_OF_POINTER
> vmstate: Update max_elems early and check field compressable once
> vmstate: Rename VMS_NULLPTR_MARKER to VMS_MARKER_PTR_NULL
> vmstate: Introduce vmstate_save_field_with_vmdesc()
> vmstate: Allow vmstate_info_nullptr to emit non-NULL markers
> vmstate: Implement load of ptr marker in vmstate core
> vmstate: Implement VMS_ARRAY_OF_POINTER_AUTO_ALLOC
>
> include/hw/intc/riscv_aclint.h | 6 +-
> include/migration/vmstate.h | 88 ++++++++++--
> migration/savevm.c | 28 ++++
> migration/vmstate-types.c | 36 ++---
> migration/vmstate.c | 247 ++++++++++++++++++++++++++-------
> tests/unit/test-vmstate.c | 90 +++++++++++-
> roms/seabios-hppa | 2 +-
> scripts/analyze-migration.py | 22 +--
> 8 files changed, 418 insertions(+), 101 deletions(-)
>
> --
> 2.50.1
>
For the whole series:
Reviewed-by: Juraj Marcin <jmarcin@redhat.com>