On (Wed) 20 Jul 2016 [12:08:32], Eduardo Habkost wrote:
> From: Igor Mammedov <[email protected]>
>
> instance_id is generated by last_used_id + 1 for a given device type
> so for QEMU with 3 CPUs instance_id for APICs is a seti of [0, 1, 2]
> When CPU in the middle is hot-removed and migration started
> APICs with instance_ids 0 and 2 are transferred in migration stream.
> However target starts with 2 CPUs and APICs' instance_ids are
> generated from scratch [0, 1] hence migration fails with error
> Unknown savevm section or instance 'apic' 2
>
> Fix issue by manually registering APIC's vmsd with apic_id as
> instance_id, in this case instance_id on target will always
> match instance_id on source as apic_id is the same for a given
> cpu instance.
>
> Reported-by: Bharata B Rao <[email protected]>
> Signed-off-by: Igor Mammedov <[email protected]>
> Reviewed-by: Dr. David Alan Gilbert <[email protected]>
> Reviewed-by: Michael S. Tsirkin <[email protected]>
> Signed-off-by: Eduardo Habkost <[email protected]>
After these patches, the static checker complains about missing
sections:
Section "apic-common" does not exist in dest
Section "apic" does not exist in dest
Section "kvm-apic" does not exist in dest
This will break migration from older versions.
Amit