On Mon, Nov 06, 2023 at 03:35:54PM +0400, marcandre.lur...@redhat.com wrote: > From: Marc-André Lureau <marcandre.lur...@redhat.com> > > Hi, > > Surprisingly, the migration code doesn't check that required migration entries > and subsections are loaded. Either optional or required sections are both > ignored when missing. According to the documentation a "newer QEMU that knows > about a subsection can (with care) load a stream from an older QEMU that > didn't > send the subsection". I propose this behaviour to be limited to "optional" > sections only. > > This series has a few preliminary fixes, add new checks that entries are > loaded once and required ones have been loaded, add some tests and > documentation update. > > thanks
series: Reviewed-by: Michael S. Tsirkin <m...@redhat.com> merge through migration tree. > v3: > - rebased, drop RFC status > - switch from tracepoint + returning an error to report for missing > subsections, as we worry about potential regressions > - add r-b tags > > v2: > - add "migration: rename vmstate_save_needed->vmstate_section_needed" > - add "migration: set file error on subsection loading" > - add subsection tests > - update the documentation > > Marc-André Lureau (6): > block/fdc: 'phase' is not needed on load > virtio: make endian_needed() work during loading > migration: check required subsections are loaded, once > migration: check required entries are loaded, once > test-vmstate: add some subsection tests > docs/migration: reflect the changes about needed subsections > > docs/devel/migration.rst | 17 +++--- > hw/block/fdc.c | 5 ++ > hw/virtio/virtio.c | 6 +- > migration/savevm.c | 43 ++++++++++++++ > migration/vmstate.c | 40 ++++++++++++- > tests/unit/test-vmstate.c | 116 ++++++++++++++++++++++++++++++++++++++ > 6 files changed, 215 insertions(+), 12 deletions(-) > > -- > 2.41.0