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