qemu/docs/devel
Avihai Horon 745c42912a vfio/migration: Add support for switchover ack capability
Loading of a VFIO device's data can take a substantial amount of time as
the device may need to allocate resources, prepare internal data
structures, etc. This can increase migration downtime, especially for
VFIO devices with a lot of resources.

To solve this, VFIO migration uAPI defines "initial bytes" as part of
its precopy data stream. Initial bytes can be used in various ways to
improve VFIO migration performance. For example, it can be used to
transfer device metadata to pre-allocate resources in the destination.
However, for this to work we need to make sure that all initial bytes
are sent and loaded in the destination before the source VM is stopped.

Use migration switchover ack capability to make sure a VFIO device's
initial bytes are sent and loaded in the destination before the source
stops the VM and attempts to complete the migration.
This can significantly reduce migration downtime for some devices.

Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Cédric Le Goater <clg@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-bits.rst tests: Use separate virtual environment for avocado 2023-06-06 16:29:53 +02:00
atomics.rst atomics: eliminate mb_read/mb_set 2023-06-06 09:42:14 +02:00
bitops.rst
blkdebug.txt
blkverify.txt
block-coroutine-wrapper.rst block-coroutine-wrapper.py: introduce co_wrapper 2022-12-15 16:07:43 +01:00
build-system.rst meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
ci-definitions.rst.inc tests/acceptance: rename tests acceptance to tests avocado 2021-11-08 17:00:22 +01:00
ci-jobs.rst.inc gitlab: allow overriding name of the upstream repository 2023-06-26 08:58:02 +02:00
ci-runners.rst.inc docs: name included files ".rst.inc" 2021-10-01 19:04:45 +02:00
ci.rst docs/devel: clean-up the CI links in the docs 2022-06-01 18:55:04 +01:00
clocks.rst clock: Provide builtin multiplier/divider 2021-09-01 11:08:19 +01:00
code-of-conduct.rst docs/devel: add a maintainers section to development process 2022-11-22 09:49:07 +00:00
conflict-resolution.rst
control-flow-integrity.rst
decodetree.rst docs: Document decodetree named field syntax 2023-05-30 10:55:39 -07:00
ebpf_rss.rst docs/devel/ebpf_rss.rst: Format literals correctly 2021-08-02 11:42:38 +01:00
fuzzing.rst docs/fuzz: remove mentions of fork-based fuzzing 2023-02-16 23:02:46 -05:00
index-api.rst docs/zoned-storage: add zoned device documentation 2023-05-15 08:17:34 -04:00
index-build.rst acpi/tests/avocado/bits/doc: add a doc file to describe the acpi bits test 2022-11-02 06:56:32 -04:00
index-internals.rst docs/devel: start documenting writing VirtIO devices 2022-05-16 04:38:40 -04:00
index-process.rst docs/devel: add a maintainers section to development process 2022-11-22 09:49:07 +00:00
index-tcg.rst tcg: convert tcg/README to rst 2023-01-04 16:20:01 -08:00
index.rst docs/devel: drop :hidden: and :includehidden: tags 2022-04-20 16:04:20 +01:00
kconfig.rst docs: clarify --without-default-devices 2023-05-08 19:04:52 +02:00
loads-stores.rst bswap: Add the ability to store to an unaligned 24 bit field 2023-06-22 18:55:14 -04:00
lockcnt.txt
maintainers.rst docs/devel: add a maintainers section to development process 2022-11-22 09:49:07 +00:00
memory.rst docs/devel: add some clarifying text for aliases 2022-01-18 12:56:29 +01:00
migration.rst migration: Split save_live_pending() into state_pending_* 2023-02-06 19:22:56 +01:00
modules.rst docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
multi-process.rst docs: Render binary names as monospaced text 2021-11-22 15:02:38 +01:00
multi-thread-tcg.rst docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
multiple-iothreads.txt async: Add an optional reentrancy guard to the BH API 2023-04-28 11:31:07 +02:00
qapi-code-gen.rst docs/interop: Convert qmp-spec.txt to rST 2023-05-22 10:21:01 +02:00
qgraph.rst Fix some typos in documentation (found by codespell) 2021-11-22 15:02:38 +01:00
qom.rst docs/devel: mention the spacing requirement for QOM 2023-04-27 14:58:51 +01:00
qtest.rst tests: move libqtest.h back under qtest/ 2022-05-03 15:16:51 +04:00
rcu.txt
replay.rst docs: move replay docs to docs/system/replay.rst 2022-06-06 09:26:54 +02:00
reset.rst hw/core/resettable: fix reset level counting 2022-10-27 10:27:23 +01:00
s390-dasd-ipl.rst
secure-coding-practices.rst
stable-process.rst docs: Fix botched rST conversion of 'submitting-a-patch.rst' 2021-11-22 15:02:38 +01:00
style.rst docs/style: call out the use of GUARD macros 2023-04-27 14:58:51 +01:00
submitting-a-patch.rst docs/devel: try and improve the language around patch review 2022-11-22 09:52:23 +00:00
submitting-a-pull-request.rst docs/devel: add a maintainers section to development process 2022-11-22 09:49:07 +00:00
tcg-icount.rst tcg: Drop gen_io_end() 2021-09-08 11:09:45 +01:00
tcg-ops.rst tcg: Add INDEX_op_qemu_{ld,st}_i128 2023-05-16 16:30:25 -07:00
tcg-plugins.rst docs: add a new section to outline emulation support 2023-02-02 10:44:23 +00:00
tcg.rst tcg: add perfmap and jitdump 2023-01-16 10:14:12 -10:00
testing.rst docs/devel/testing: Update the 'Docker Debugging' section 2023-06-28 13:55:35 +02:00
tracing.rst docs: trace-events-all is installed without renaming 2022-04-21 17:03:51 +04:00
trivial-patches.rst docs: Fix botched rST conversion of 'submitting-a-patch.rst' 2021-11-22 15:02:38 +01:00
ui.rst docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
vfio-migration.rst vfio/migration: Add support for switchover ack capability 2023-06-30 06:02:51 +02:00
virtio-backends.rst docs/devel: start documenting writing VirtIO devices 2022-05-16 04:38:40 -04:00
virtio-migration.txt
writing-monitor-commands.rst qapi: Start to elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
zoned-storage.rst docs/zoned-storage:add zoned emulation use case 2023-05-15 08:19:04 -04:00