diff options
author | Dr. David Alan Gilbert | 2019-09-23 19:49:42 +0200 |
---|---|---|
committer | Dr. David Alan Gilbert | 2019-09-25 16:51:19 +0200 |
commit | 3748fef9b95a9bc1602f3c4ed2a329d8ef47e63c (patch) | |
tree | 3c8026b9cd56501762f9f165486473418cca8a40 /migration/migration.c | |
parent | tests/migration/postcopy: trim migration bandwidth (diff) | |
download | qemu-3748fef9b95a9bc1602f3c4ed2a329d8ef47e63c.tar.gz qemu-3748fef9b95a9bc1602f3c4ed2a329d8ef47e63c.tar.xz qemu-3748fef9b95a9bc1602f3c4ed2a329d8ef47e63c.zip |
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 <dgilbert@redhat.com>
Message-Id: <20190923174942.12182-1-dgilbert@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r-- | migration/migration.c | 9 |
1 files changed, 8 insertions, 1 deletions
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) |