Files
qemu-qemu/migration
Peter Xu 9519d3667a migration: Move iteration counter out of RAM
It used to hide in RAM dirty sync path.  Now with more modules being able
to slow sync on dirty information, keeping it there may not be good anymore
because it's not RAM's own concept for iterations: all modules should
follow.

More importantly, mgmt may try to query dirty info (to make policy
decisions like adjusting downtime) by listening to iteration count changes
via QMP events.  So we must make sure the boost of iterations only happens
_after_ the dirty sync operations with whatever form (RAM's dirty bitmap
sync, or VFIO's different ioctls to fetch latest dirty info from kernel).

Move this to core migration path to manage, together with the event
generation, so that it can be well ordered with the sync operations for all
modules.

This brings a good side effect that we should have an old issue regarding
to cpu_throttle_dirty_sync_timer_tick() which can randomly boost iteration
counts (because it invokes sync ops).  Now it won't, which is actually the
right behavior.

Said that, we have code (not only QEMU, but likely mgmt too) assuming the
1st iteration will always shows dirty count to 1.  Make it initialized with
1 this time, because we'll miss the dirty sync for setup() on boosting this
counter now.

Reviewed-by: Hyman Huang <yong.huang@smartx.com>
Reviewed-by: Prasad Pandit <pjp@fedoraproject.org>
Reviewed-by: Juraj Marcin <jmarcin@redhat.com>
Link: https://lore.kernel.org/r/20260421202110.306051-10-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
2026-05-05 12:35:25 -04:00
..
2026-01-17 10:46:31 +11:00
2024-12-20 17:44:56 +01:00
2026-03-09 08:53:32 -03:00
2026-03-09 08:53:32 -03:00
2026-03-09 08:53:32 -03:00
2026-03-09 08:53:32 -03:00
2026-03-09 08:53:32 -03:00
2025-12-27 10:11:09 +01:00
2026-01-23 11:32:18 -03:00
2026-01-23 11:32:18 -03:00
2025-09-02 17:57:05 +02:00
2025-09-02 17:57:05 +02:00