On 03/10/2015 02:25, Alexey Kardashevskiy wrote: >> I think this is the aim of VMSTATE_UINT64_EQUAL() ? > > We use it only for things which cannot be set via the command line > and ideally there should be no VMSTATE_*_EQUAL. If something can be > set via the command line, then the management software (read - > libvirt) runs QEMU with explicit parameters to guarantee that these > are equal.
VMSTATE_*_EQUAL is used when a value is later used as e.g. the size of an array. It basically provides bounds checking for the subsequent array, avoiding that an invalid migration file or an error issuing the QEMU command on the destination transforms into a buffer overflow. Michael Roth did most of this work, IIRC. Documenting it in docs/migration.txt would be nice. Paolo