[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/9] RFC: migration: check required entries and sections are l
From: |
marcandre . lureau |
Subject: |
[PATCH v2 0/9] RFC: migration: check required entries and sections are loaded |
Date: |
Tue, 24 Oct 2023 12:40:34 +0400 |
From: Marc-André Lureau <marcandre.lureau@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
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 (9):
block/fdc: 'phase' is not needed on load
virtio: make endian_needed() work during loading
net/slirp: use different IDs for each instance
migration: rename vmstate_save_needed->vmstate_section_needed
migration: check required subsections are loaded, once
migration: check required entries are loaded, once
migration: set file error on subsection loading
test-vmstate: add some subsection tests
docs/migration: reflect the changes about needed subsections
docs/devel/migration.rst | 17 +++---
include/migration/vmstate.h | 2 +-
hw/block/fdc.c | 5 ++
hw/virtio/virtio.c | 6 +-
migration/savevm.c | 45 +++++++++++++-
migration/vmstate.c | 45 ++++++++++++--
net/slirp.c | 3 +-
tests/unit/test-vmstate.c | 116 ++++++++++++++++++++++++++++++++++++
8 files changed, 222 insertions(+), 17 deletions(-)
--
2.41.0
- [PATCH v2 0/9] RFC: migration: check required entries and sections are loaded,
marcandre . lureau <=
- [PATCH v2 1/9] block/fdc: 'phase' is not needed on load, marcandre . lureau, 2023/10/24
- [PATCH v2 2/9] virtio: make endian_needed() work during loading, marcandre . lureau, 2023/10/24
- [PATCH v2 4/9] migration: rename vmstate_save_needed->vmstate_section_needed, marcandre . lureau, 2023/10/24
- [PATCH v2 5/9] migration: check required subsections are loaded, once, marcandre . lureau, 2023/10/24
- [PATCH v2 3/9] net/slirp: use different IDs for each instance, marcandre . lureau, 2023/10/24
- [PATCH v2 6/9] migration: check required entries are loaded, once, marcandre . lureau, 2023/10/24