On Mon, Mar 27, 2023 at 01:15:18PM -0300, Leonardo Bras wrote: > Since the introduction of multifd, it's possible to perform a multifd > migration and finish it using postcopy. > > A bug introduced by yank (fixed on cfc3bcf373) was previously preventing > a successful use of this migration scenario, and now it should be > working on most cases. > > But since there is not enough testing/support nor any reported users for > this scenario, we should disable this combination before it may cause any > problems for users.
Clearly we don't have enough testing, but multifd+postcopy looks like a clearly useful scenario that we should be supporting. Every post-copy starts with at least one pre-copy iteration, and using multifd for that will be important for big VMs where single threaded pre-copy is going to be CPU bound. The greater amount we can transfer in the pre-copy phase, the less page faults / latency spikes postcopy is going to see. In terms of migration usage, my personal recommendation to mgmt apps would be that they should always enable the post-copy feature when starting a migration. Even if they expect to try to get it to complete using exclusively pre-copy in the common case, its useful to have post-copy capability flag enabled, as a get out of jail free card. ie if migration ends up getting stuck in non-convergance, or they have a sudden need to urgently complete the migration it is good to be able to flip to post-copy mode. I'd suggest that we instead add a multifd+postcopy test case to migration-test.c and tackle any bugs it exposes. By blocking it unconditionally we ensure no one will exercise it to expose any further bugs. > Suggested-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Signed-off-by: Leonardo Bras <leob...@redhat.com> > --- > migration/migration.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/migration/migration.c b/migration/migration.c > index ae2025d9d8..c601964b0e 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -1356,6 +1356,11 @@ static bool migrate_caps_check(bool *cap_list, > error_setg(errp, "Postcopy is not compatible with > ignore-shared"); > return false; > } > + > + if (cap_list[MIGRATION_CAPABILITY_MULTIFD]) { > + error_setg(errp, "Postcopy is not yet compatible with multifd"); > + return false; > + } > } > > if (cap_list[MIGRATION_CAPABILITY_BACKGROUND_SNAPSHOT]) { > -- > 2.40.0 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|