On Tue, Jul 22, 2025 at 8:41 PM Jonah Palmer <jonah.pal...@oracle.com> wrote:
>
> This series is an RFC initial implementation of iterative live
> migration for virtio-net devices.
>
> The main motivation behind implementing iterative migration for
> virtio-net devices is to start on heavy, time-consuming operations
> for the destination while the source is still active (i.e. before
> the stop-and-copy phase).

It would be better to explain which kind of operations were heavy and
time-consuming and how iterative migration help.

>
> The motivation behind this RFC series specifically is to provide an
> initial framework for such an implementation and get feedback on the
> design and direction.
> -------
>
> This implementation of iterative live migration for a virtio-net device
> is enabled via setting the migration capability 'virtio-iterative' to
> on for both the source & destination, e.g. (HMP):
>
> (qemu) migrate_set_capability virtio-iterative on
>
> The virtio-net device's SaveVMHandlers hooks are registered/unregistered
> during the device's realize/unrealize phase.

I wonder about the plan for libvirt support.

>
> Currently, this series only sends and loads the vmstate at the start of
> migration. The vmstate is still sent (again) during the stop-and-copy
> phase, as it is today, to handle any deltas in the state since it was
> initially sent. A future patch in this series could avoid having to
> re-send and re-load the entire state again and instead focus only on the
> deltas.
>
> There is a slight, modest improvement in guest-visible downtime from
> this series. More specifically, when using iterative live migration with
> a virtio-net device, the downtime contributed by migrating a virtio-net
> device decreased from ~3.2ms to ~1.4ms on average:

Are you testing this via a software virtio device or hardware one?

>
> Before:
> -------
> vmstate_downtime_load type=non-iterable idstr=0000:00:03.0/virtio-net
>   instance_id=0 downtime=3594
>
> After:
> ------
> vmstate_downtime_load type=non-iterable idstr=0000:00:03.0/virtio-net
>   instance_id=0 downtime=1607
>
> This slight improvement is likely due to the initial vmstate_load_state
> call "warming up" pages in memory such that, when it's called a second
> time during the stop-and-copy phase, allocation and page-fault latencies
> are reduced.
> -------
>
> Comments, suggestions, etc. are welcome here.
>
> Jonah Palmer (6):
>   migration: Add virtio-iterative capability
>   virtio-net: Reorder vmstate_virtio_net and helpers
>   virtio-net: Add SaveVMHandlers for iterative migration
>   virtio-net: iter live migration - migrate vmstate
>   virtio,virtio-net: skip consistency check in virtio_load for iterative
>     migration
>   virtio-net: skip vhost_started assertion during iterative migration
>
>  hw/net/virtio-net.c            | 246 +++++++++++++++++++++++++++------
>  hw/virtio/virtio.c             |  32 +++--
>  include/hw/virtio/virtio-net.h |   8 ++
>  include/hw/virtio/virtio.h     |   7 +
>  migration/savevm.c             |   1 +
>  qapi/migration.json            |   7 +-
>  6 files changed, 247 insertions(+), 54 deletions(-)
>
> --
> 2.47.1

Thanks

>


Reply via email to