qemu-e2k/migration
Peter Xu 12c81e5ae9 migration/vmstate-dump: Dump array size too as "num"
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 31e3f318c8):

-        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>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-04-27 10:18:25 +02:00
..
block-dirty-bitmap.c migration: Create options.c 2023-04-24 15:01:46 +02:00
block.c migration: Move migrate_use_block_incremental() to option.c 2023-04-24 15:01:46 +02:00
block.h
channel-block.c io: Add support for MSG_PEEK for socket channel 2023-02-06 19:22:56 +01:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
channel.h migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
colo-failover.c migration/colo: Improve an x-colo-lost-heartbeat error message 2023-02-23 14:10:17 +01:00
colo.c migration: Create migrate_checkpoint_delay() 2023-04-24 15:01:46 +02:00
dirtyrate.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
dirtyrate.h migration/dirtyrate: Refactor dirty page rate calculation 2022-07-20 12:15:08 +01:00
exec.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
exec.h
fd.c
fd.h
global_state.c
meson.build migration: Create options.c 2023-04-24 15:01:46 +02:00
migration-hmp-cmds.c spice: move client_migrate_info command to ui/ 2023-04-24 15:01:46 +02:00
migration.c migration: Move qmp_migrate_set_parameters() to options.c 2023-04-27 10:18:25 +02:00
migration.h migration: Move migrate_use_tls() to options.c 2023-04-27 10:18:25 +02:00
multifd-zlib.c migration: Move parameters functions to option.c 2023-04-24 15:01:46 +02:00
multifd-zstd.c migration: Move parameters functions to option.c 2023-04-24 15:01:46 +02:00
multifd.c migration: Move migrate_use_zero_copy_send() to options.c 2023-04-24 15:01:46 +02:00
multifd.h migration/multifd: Move load_cleanup inside incoming_state_destroy 2023-02-13 03:45:40 +01:00
options.c migration: Allow postcopy_ram_supported_by_host() to report err 2023-04-27 10:18:25 +02:00
options.h migration: Move qmp_migrate_set_parameters() to options.c 2023-04-27 10:18:25 +02:00
page_cache.c
page_cache.h
postcopy-ram.c migration: Allow postcopy_ram_supported_by_host() to report err 2023-04-27 10:18:25 +02:00
postcopy-ram.h migration: Allow postcopy_ram_supported_by_host() to report err 2023-04-27 10:18:25 +02:00
qemu-file.c migration: mark mixed functions that can suspend 2023-04-20 11:17:35 +02:00
qemu-file.h migration: mark mixed functions that can suspend 2023-04-20 11:17:35 +02:00
ram.c migration: Create migrate_cpu_throttle_tailslow() function 2023-04-24 15:01:47 +02:00
ram.h migration: Rename normal to normal_pages 2023-04-24 11:29:00 +02:00
rdma.c migration: Create migrate_rdma_pin_all() function 2023-04-24 15:01:46 +02:00
rdma.h
savevm.c migration/vmstate-dump: Dump array size too as "num" 2023-04-27 10:18:25 +02:00
savevm.h migration: Rename res_{postcopy,precopy}_only 2023-02-15 20:04:30 +01:00
socket.c migration: Move migrate_use_zero_copy_send() to options.c 2023-04-24 15:01:46 +02:00
socket.h migration: Postcopy preemption preparation on channel creation 2022-07-20 12:15:08 +01:00
target.c migration: fix populate_vfio_info 2023-03-16 16:07:07 +01:00
threadinfo.c migration: Introduce interface query-migrationthreads 2023-02-06 19:22:57 +01:00
threadinfo.h migration: Introduce interface query-migrationthreads 2023-02-06 19:22:57 +01:00
tls.c migration: Move migrate_use_tls() to options.c 2023-04-27 10:18:25 +02:00
tls.h migration: Add helpers to detect TLS capability 2022-07-20 12:15:08 +01:00
trace-events migration: Remove unused res_compatible 2023-02-15 20:04:30 +01:00
trace.h
vmstate-types.c Move CPU softfloat unions to cpu-float.h 2022-04-06 14:31:43 +02:00
vmstate.c migration: Add canary to VMSTATE_END_OF_LIST 2023-02-06 19:22:56 +01:00
xbzrle.c migration/xbzrle: fix out-of-bounds write with axv512 2023-03-16 16:07:07 +01:00
xbzrle.h AVX512 support for xbzrle_encode_buffer 2023-02-11 16:51:09 +01:00
yank_functions.c
yank_functions.h