David Hildenbrand <da...@redhat.com> wrote: > For virtio-mem, we want to have the plugged/unplugged state of memory > blocks available before migrating any actual RAM content, and perform > sanity checks before touching anything on the destination. This > information is immutable on the migration source while migration is active, > > We want to use this information for proper preallocation support with > migration: currently, we don't preallocate memory on the migration target, > and especially with hugetlb, we can easily run out of hugetlb pages during > RAM migration and will crash (SIGBUS) instead of catching this gracefully > via preallocation. > > Migrating device state via a VMSD before we start iterating is currently > impossible: the only approach that would be possible is avoiding a VMSD > and migrating state manually during save_setup(), to be restored during > load_state(). > > Let's allow for migrating device state via a VMSD early, during the > setup phase in qemu_savevm_state_setup(). To keep it simple, we > indicate applicable VMSD's using an "early_setup" flag. > > Note that only very selected devices (i.e., ones seriously messing with > RAM setup) are supposed to make use of such early state migration. > > While at it, also use a bool for the "unmigratable" member. > > Signed-off-by: David Hildenbrand <da...@redhat.com>
Reviewed-by: Juan Quintela <quint...@redhat.com>