qemu/qapi
Avihai Horon 6574232fff migration: Add switchover ack capability
Migration downtime estimation is calculated based on bandwidth and
remaining migration data. This assumes that loading of migration data in
the destination takes a negligible amount of time and that downtime
depends only on network speed.

While this may be true for RAM, it's not necessarily true for other
migrated devices. For example, loading the data of a VFIO device in the
destination might require from the device to allocate resources, prepare
internal data structures and so on. These operations can take a
significant amount of time which can increase migration downtime.

This patch adds a new capability "switchover ack" that prevents the
source from stopping the VM and completing the migration until an ACK
is received from the destination that it's OK to do so.

This can be used by migrated devices in various ways to reduce downtime.
For example, a device can send initial precopy metadata to pre-allocate
resources in the destination and use this capability to make sure that
the pre-allocation is completed before the source VM is stopped, so it
will have full effect.

This new capability relies on the return path capability to communicate
from the destination back to the source.

The actual implementation of the capability will be added in the
following patches.

Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Tested-by: YangHang Liu <yanghliu@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2023-06-30 06:02:51 +02:00
..
acpi.json
audio.json
authz.json
block-core.json
block-export.json
block.json
char.json
common.json
compat.json
control.json
crypto.json
cryptodev.json spelling: information 2023-06-09 23:38:16 +03:00
cxl.json hw/cxl/events: Add injection of Memory Module Events 2023-06-23 02:54:40 -04:00
dump.json
error.json
introspect.json
job.json
machine-target.json
machine.json accel/tcg: remove CONFIG_PROFILER 2023-06-26 17:33:00 +02:00
meson.build meson: Replace CONFIG_SOFTMMU -> CONFIG_SYSTEM_ONLY 2023-06-20 10:01:30 +02:00
migration.json migration: Add switchover ack capability 2023-06-30 06:02:51 +02:00
misc-target.json
misc.json
net.json
opts-visitor.c
pci.json
pragma.json
qapi-clone-visitor.c
qapi-dealloc-visitor.c
qapi-forward-visitor.c
qapi-schema.json
qapi-type-helpers.c
qapi-util.c
qapi-visit-core.c
qdev.json
qmp-dispatch.c
qmp-event.c
qmp-registry.c
qobject-input-visitor.c
qobject-output-visitor.c
qom.json
rdma.json
replay.json
rocker.json
run-state.json
sockets.json
stats.json
string-input-visitor.c
string-output-visitor.c
tpm.json
trace-events
trace.h
trace.json
transaction.json
ui.json ui: add egl-headless support on win32 2023-06-27 17:08:56 +02:00
virtio.json
yank.json