On Wed, Oct 14, 2026 12:42:55AM -0700, Markus Armbruster wrote:
> Dongli Zhang <[email protected]> writes:
> 
>> Add the cpr-luo migration mode for CPR through the Linux Live Update
>> Orchestrator (LUO). Subsequent changes preserve CPR state and RAMBlock
>> backing file descriptors in an LUO session across a host kernel update.
>>
>> Signed-off-by: Dongli Zhang <[email protected]>
>> ---
>>  qapi/migration.json | 11 ++++++++++-
>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/qapi/migration.json b/qapi/migration.json
>> index 889a9b89c2..ab117c3897 100644
>> --- a/qapi/migration.json
>> +++ b/qapi/migration.json
>> @@ -712,9 +712,18 @@
>>  #     with the '-machine aux-ram-share=on' option.
>>  #
>>  #     (since 10.2)
>> +#
>> +# @cpr-luo: A CPR mode that preserves guest RAM backing file
>> +#     descriptors and CPR state through the Linux Live Update
>> +#     Orchestrator (LUO) across a host kernel update.
>> +#
>> +#     This mode requires Linux with LUO support.
> 
> Pardon my ignorant question: host or guest kernel?
> 
Host KVM kernel.


cpr-luo is more similar to cpr-exec (assuming VFIO is not involved).

cpr-exec (same process across exec):

- RAMBlock fds are preserved across exec(). The metadata is transferred to the
target via a memfd passed through an environment variable.
- The device state (i.e., virtio) is transferred through the main stream (i.e.,
a file).

cpr-transfer (two processes):

- RAMBlock fds are preserved and transferred to the target QEMU via a UNIX
domain socket.
- The device state (i.e., virtio) is transferred through the main stream (i.e.,
local TCP).

cpr-reboot (across reboot):

- The RAMBlock is always reconstructed. It is just a matter of whether to
save/load the memory data, depending on whether x-ignore-shared is enabled.
- The vmstate (i.e., virtio) is transferred through the main stream (i.e., a 
file).

New cpr-luo (across kexec/LUO/KHO):

- RAMBlock fds are preserved and transferred across kexec to the target QEMU via
LUO/KHO, identified by a LUO session and tokens.
- The device state (i.e., virtio) is transferred through the main stream (i.e.,
a file).

Thank you very much!

Dongli Zhang

Reply via email to