On Fri, Feb 21, 2020 at 05:41:56PM +0100, David Hildenbrand wrote:
> Resizing while migrating is dangerous and does not work as expected.
> The whole migration code works on the usable_length of ram blocks and does
> not expect this to change at random points in time.
> 
> In the case of precopy, the ram block size must not change on the source,
> after syncing the RAM block list in ram_save_setup(), so as long as the
> guest is still running on the source.
> 
> Resizing can be trigger *after* (but not during) a reset in
> ACPI code by the guest
> - hw/arm/virt-acpi-build.c:acpi_ram_update()
> - hw/i386/acpi-build.c:acpi_ram_update()
> 
> Use the ram block notifier to get notified about resizes. Let's simply
> cancel migration and indicate the reason. We'll continue running on the
> source. No harm done.
> 
> Update the documentation. Postcopy will be handled separately.
> 
> Cc: "Dr. David Alan Gilbert" <dgilb...@redhat.com>
> Cc: Juan Quintela <quint...@redhat.com>
> Cc: Eduardo Habkost <ehabk...@redhat.com>
> Cc: Paolo Bonzini <pbonz...@redhat.com>
> Cc: Igor Mammedov <imamm...@redhat.com>
> Cc: "Michael S. Tsirkin" <m...@redhat.com>
> Cc: Richard Henderson <richard.hender...@linaro.org>
> Cc: Shannon Zhao <shannon.z...@linaro.org>
> Cc: Alex Bennée <alex.ben...@linaro.org>
> Cc: Peter Xu <pet...@redhat.com>
> Signed-off-by: David Hildenbrand <da...@redhat.com>

Reviewed-by: Peter Xu <pet...@redhat.com>

-- 
Peter Xu


Reply via email to