qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] migration/vmstate-dump: Dump array size too as "num"


From: Juan Quintela
Subject: Re: [PATCH 1/2] migration/vmstate-dump: Dump array size too as "num"
Date: Wed, 26 Apr 2023 18:30:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Peter Xu <peterx@redhat.com> wrote:
> For VMS_ARRAY typed vmsd fields, also dump the number of entries in the
> array in -vmstate-dump.
>
> Without such information, vmstate static checker can report false negatives
> of incompatible vmsd on VMS_ARRAY typed fields, when the src/dst do not
> have the same type of array defined.  It's because in the checker we only
> check against size of fields within a VMSD field.
>
> One example: e1000e used to have a field defined as a boolean array with 5
> entries, then removed it and replaced it with UNUSED (in 31e3f318c8b535):
>
> -        VMSTATE_BOOL_ARRAY(core.eitr_intr_pending, E1000EState,
> -                           E1000E_MSIX_VEC_NUM),
> +        VMSTATE_UNUSED(E1000E_MSIX_VEC_NUM),
>
> It's a legal replacement but vmstate static checker is not happy with it,
> because it checks only against the "size" field between the two
> fields (here one is BOOL_ARRAY, the other is UNUSED):
>
> For BOOL_ARRAY:
>
>       {
>         "field": "core.eitr_intr_pending",
>         "version_id": 0,
>         "field_exists": false,
>         "size": 1
>       },
>
> For UNUSED:
>
>       {
>         "field": "unused",
>         "version_id": 0,
>         "field_exists": false,
>         "size": 5
>       },
>
> It's not the script to blame because there's just not enough information
> dumped to show the total size of the entry for an array.  Add it.
>
> Note that this will not break old vmstate checker because the field will
> just be ignored.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

queued.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]