[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V9 00/46] Live Update
From: |
Steven Sistare |
Subject: |
Re: [PATCH V9 00/46] Live Update |
Date: |
Wed, 7 Jun 2023 13:37:14 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 |
On 6/7/2023 11:55 AM, Michael Galaxy wrote:
> Another option could be to expose "-migrate-mode-disable" (instead of enable)
> and just enable all 3 modes by default,
> since we are already required to switch from "normal" mode to a CPR-specific
> mode when it is time to do a live update,
> if the intention is to preserve the capability to completely prevent a
> running QEMU from using these modes
> before the VM starts up.
>
> - Michael
>
> On 6/6/23 17:15, Michael Galaxy wrote:
>> Hi Steve,
>>
>> In the current design you have, we have to specify both the command line
>> parameter "-migrate-mode-enable cpr-reboot"
>> *and* issue the monitor command "migrate_set_parameter mode cpr-${mode}".
>>
>> Is it possible to opt-in to the CPR mode just once over the monitor instead
>> of having to specify it twice on the command line?
>> This would also match the live migration model: You do not need to
>> necessarily "opt in" to live migration mode through
>> a command line parameter, you simply request it when you need to. Can CPR
>> behave the same way?
>>
>> This would also make switching over to a CPR-capable version of QEMU much
>> simpler and would even make it work for
>> existing libvirt-managed guests as their command line parameters would no
>> longer need to change. This would allow us to
>> simply power-off and power-on existing VMs to make them CPR-capable and then
>> work on a libvirt patch later when
>> we're ready to do so.
>>
>>
>> Comments?
Hi Michael,
Requiring -migrate-enable-mode allows qemu to initialize objects
differently, if necessary, so that migration for a mode is not blocked.
See callers of migrate_mode_enabled. There is only one so far, in
ram_block_add. If the mode is cpr-exec, then it creates anonymous ram
blocks using memfd_create, else using MAP_ANON. In the V7 series, this
was controlled by a '-machine memfd-alloc=on' option.
migrate-enable-mode is more future proof for the user. If something new must
initialize differently to support cpr, then it adds a call to
migrate_mode_enabled,
and the command line remains the same. However, I could be persuaded to go
either way.
A secondary reason for -migrate-enable-mode is to support the only-cpr-capable
option. It needs to know which mode will be used, in order to check a
mode-specific blocker list.
- Steve