On 2/28/2024 2:21 AM, Markus Armbruster wrote:
> Steve Sistare <steven.sist...@oracle.com> writes:
> 
>> Fail the migration request if options are set that are incompatible
>> with cpr.
>>
>> Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
>> ---
>>  migration/migration.c | 17 +++++++++++++++++
>>  qapi/migration.json   |  2 ++
>>  2 files changed, 19 insertions(+)
>>
>> diff --git a/migration/migration.c b/migration/migration.c
>> index 90a9094..7652fd4 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -1953,6 +1953,23 @@ static bool migrate_prepare(MigrationState *s, bool 
>> blk, bool blk_inc,
>>          return false;
>>      }
>>  
>> +    if (migrate_mode_is_cpr(s)) {
>> +        const char *conflict = NULL;
>> +
>> +        if (migrate_postcopy()) {
>> +            conflict = "postcopy";
>> +        } else if (migrate_background_snapshot()) {
>> +            conflict = "background snapshot";
>> +        } else if (migrate_colo()) {
>> +            conflict = "COLO";
>> +        }
>> +
>> +        if (conflict) {
>> +            error_setg(errp, "Cannot use %s with CPR", conflict);
>> +            return false;
>> +        }
>> +    }
>> +
>>      if (blk || blk_inc) {
>>          if (migrate_colo()) {
>>              error_setg(errp, "No disk migration is required in COLO mode");
>> diff --git a/qapi/migration.json b/qapi/migration.json
>> index 0990297..c6bfe2e 100644
>> --- a/qapi/migration.json
>> +++ b/qapi/migration.json
>> @@ -657,6 +657,8 @@
>>  #     shared backend must be be non-volatile across reboot, such as by 
>> backing
>>  #     it with a dax device.
>>  #
>> +#     cpr-reboot may not be used with postcopy, colo, or 
>> background-snapshot.
>> +#
> 
> @cpr-reboot
> 
> COLO
> 
> Wrap the line:
> 
>    #     @cpr-reboot may not be used with postcopy, COLO, or
>    #     background-snapshot.
> 
> This doesn't tell the reader what settings exactly do not work with
> @cpr-reboot.
> 
> For instance "background-snapshot" is about enabling migration
> capability @background-snapshot.  We could write something like "is
> incompatible with enabling migration capability @background-snapshot".
> 
> Same for the other two.  Worthwhile?

I initially was more precise exactly as you suggest, but I realized that
postcopy encompasses multiple capabilities, and I did not want to enumerate
them, nor require new capabilities related to these 3 to be listed here 
if/when they are created, so I generalized.  A keyword search in this file 
gives unambiguous matches.

Peter pushed the patch a few hours before you sent this.

- Steve

Reply via email to