[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.