On Tue, Jun 09, 2026 at 10:58:00AM +0300, Avihai Horon wrote:
> ram_postcopy_send_discard_bitmap() performs the final RAM dirty bitmap
> sync at postcopy switchover, before sending discard bitmap to the
> destination. Unlike the precopy switchover path, it currently calls the
> raw migration_bitmap_sync() helper and passes last_stage=false.
>
> Postcopy switchover is also a stopped-VM final sync point, so use
> migration_bitmap_sync_precopy(true). This keeps RAM final bitmap sync
> handling consistent across precopy and postcopy switchover, including
> the precopy bitmap-sync notifier wrapper. Current notifier users are
> safe in postcopy: virtio-balloon free-page hinting already opts out when
> postcopy-ram is enabled [1].
>
> This prepares for moving the final sync out of RAM completion/discard
> paths and into migration_switchover_start(), where the migration core
> can run a final save_query_pending pass for all modules uniformly.
>
> [1] fd51e54fa102 ("virtio-balloon: don't start free page hinting if postcopy
> is possible")
>
> Signed-off-by: Avihai Horon <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
--
Peter Xu