aboutsummaryrefslogtreecommitdiff
path: root/docs/devel/migration
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <maciej.szmigiero@oracle.com>2025-03-04 23:03:53 +0100
committerCédric Le Goater <clg@redhat.com>2025-03-06 06:47:34 +0100
commit3228d311ab1882f75b04d080d33a71fc7a0bcac5 (patch)
tree3189ee2109c686efb16d38c73611571cbdbc377c /docs/devel/migration
parent6bcffb1cad5b2b45152c0faa1133c96d3f129914 (diff)
downloadqemu-3228d311ab1882f75b04d080d33a71fc7a0bcac5.zip
qemu-3228d311ab1882f75b04d080d33a71fc7a0bcac5.tar.gz
qemu-3228d311ab1882f75b04d080d33a71fc7a0bcac5.tar.bz2
vfio/migration: Multifd device state transfer support - received buffers queuing
The multifd received data needs to be reassembled since device state packets sent via different multifd channels can arrive out-of-order. Therefore, each VFIO device state packet carries a header indicating its position in the stream. The raw device state data is saved into a VFIOStateBuffer for later in-order loading into the device. The last such VFIO device state packet should have VFIO_DEVICE_STATE_CONFIG_STATE flag set and carry the device config state. Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/e3bff515a8d61c582b94b409eb12a45b1a143a69.1741124640.git.maciej.szmigiero@oracle.com [ clg: - Reordered savevm_vfio_handlers - Added load_state_buffer documentation ] Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'docs/devel/migration')
-rw-r--r--docs/devel/migration/vfio.rst7
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/devel/migration/vfio.rst b/docs/devel/migration/vfio.rst
index c49482e..8b1f288 100644
--- a/docs/devel/migration/vfio.rst
+++ b/docs/devel/migration/vfio.rst
@@ -76,6 +76,10 @@ VFIO implements the device hooks for the iterative approach as follows:
* A ``load_state`` function that loads the config section and the data
sections that are generated by the save functions above.
+* A ``load_state_buffer`` function that loads the device state and the device
+ config that arrived via multifd channels.
+ It's used only in the multifd mode.
+
* ``cleanup`` functions for both save and load that perform any migration
related cleanup.
@@ -194,6 +198,9 @@ Live migration resume path
(RESTORE_VM, _ACTIVE, _STOP)
|
For each device, .load_state() is called for that device section data
+ transmitted via the main migration channel.
+ For data transmitted via multifd channels .load_state_buffer() is called
+ instead.
(RESTORE_VM, _ACTIVE, _RESUMING)
|
At the end, .load_cleanup() is called for each device and vCPUs are started