Document the cpr-exec flow using the memfd migration transport. The example keeps migrate_incoming explicit so the command sequence mirrors the existing deferred incoming flow.
Signed-off-by: Dongli Zhang <[email protected]> --- docs/devel/migration/CPR.rst | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/devel/migration/CPR.rst b/docs/devel/migration/CPR.rst index b6178568a8..8afc83a08d 100644 --- a/docs/devel/migration/CPR.rst +++ b/docs/devel/migration/CPR.rst @@ -369,6 +369,10 @@ Outgoing: a ``file`` type, but one can use other types such as ``exec``, provided the command captures all the data from the outgoing side, and provides all the data to the incoming side. + * Alternatively, use the ``memfd:`` URI to save VM/device state + to an internal memfd inherited by the new QEMU. The new QEMU may + use ``-incoming memfd:`` to load it automatically, or ``-incoming + defer`` to load it later with ``migrate_incoming memfd:``. Incoming: * You do not need to explicitly start new QEMU. It is started as @@ -424,6 +428,26 @@ Example 2: incoming defer (qemu) info status VM status: running +Example 3: main state memfd +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:: + + # qemu-kvm -monitor stdio + -machine q35,memory-backend=ram0,aux-ram-share=on + -object memory-backend-memfd,id=ram0,size=8G,share=on + ... ... + + QEMU 11.1.50 monitor - type 'help' for more information + (qemu) migrate_set_parameter mode cpr-exec + (qemu) migrate_set_parameter cpr-exec-command qemu-kvm ... -incoming defer + (qemu) migrate -d memfd: + QEMU 11.1.50 monitor - type 'help' for more information + (qemu) info status + VM status: paused (inmigrate) + (qemu) migrate_incoming memfd: + (qemu) info status + VM status: running + Caveats ^^^^^^^ -- 2.43.5
