From: Dr. David Alan Gilbert Date: Mon, 23 Sep 2019 17:49:42 +0000 (+0100) Subject: migration/postcopy: Recognise the recovery states as 'in_postcopy' X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3748fef9b95a9bc1602f3c4ed2a329d8ef47e63c;p=qemu.git migration/postcopy: Recognise the recovery states as 'in_postcopy' Various parts of the migration code do different things when they're in postcopy mode; prior to this patch this has been 'postcopy-active'. This patch extends 'in_postcopy' to include 'postcopy-paused' and 'postcopy-recover'. In particular, when you set the max-postcopy-bandwidth parameter, this only affects the current migration fd if we're 'in_postcopy'; this leads to a race in the postcopy recovery test where it increases the speed from 4k/sec to unlimited, but that increase can get ignored if the change is made between the point at which the reconnection happens and it transitions back to active. Signed-off-by: Dr. David Alan Gilbert Message-Id: <20190923174942.12182-1-dgilbert@redhat.com> Reviewed-by: Alex Bennée Reviewed-by: Peter Xu Reviewed-by: Juan Quintela Tested-by: Alex Bennée Tested-by: Markus Armbruster Signed-off-by: Dr. David Alan Gilbert --- diff --git a/migration/migration.c b/migration/migration.c index 01863a95f5..5f7e4d15e9 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1659,7 +1659,14 @@ bool migration_in_postcopy(void) { MigrationState *s = migrate_get_current(); - return (s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE); + switch (s->state) { + case MIGRATION_STATUS_POSTCOPY_ACTIVE: + case MIGRATION_STATUS_POSTCOPY_PAUSED: + case MIGRATION_STATUS_POSTCOPY_RECOVER: + return true; + default: + return false; + } } bool migration_in_postcopy_after_devices(MigrationState *s)