Statistics
| Branch: | Revision:

root / migration.c @ 834574ea

History | View | Annotate | Download (20.4 kB)

# Date Author Comment
d7cd3694 02/11/2013 09:22 pm Stefan Hajnoczi

migration: restrict scope of incoming fd read handler

The incoming migration is processed in a coroutine and uses an fd read
handler to enter the yielded coroutine when data becomes available.

The read handler was set too broadly, so that spurious coroutine entries...

312fd5f2 02/11/2013 04:13 pm Markus Armbruster

error: Strip trailing '\n' from error string arguments (again)

Commit 6daf194d and be62a2eb got rid of a bunch, but they keep coming
back. Tracked down with this Coccinelle semantic patch:

r
expression err, eno, cls, fmt;
position p;
@@
(...
f7b67be3 01/17/2013 02:54 pm Juan Quintela

migration: Add buffered_flush error handling

Now that we have error handling we can do proper handling of
buffered_flush().

Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

7de6a690 01/17/2013 02:54 pm Juan Quintela

migration: move exit condition to migration thread

Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

c369f40d 01/17/2013 02:54 pm Juan Quintela

migration: unfold rest of migrate_fd_put_ready() into thread

This will allow us finer control in next patches.

Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

b22ff1fb 01/17/2013 02:54 pm Juan Quintela

migration: Only go to the iterate stage if there is anything to send

Signed-off-by: Orit Wasserman <>
Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

6522773f 01/17/2013 02:54 pm Juan Quintela

migration: remove argument to qemu_savevm_state_cancel

Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

76f5933a 01/17/2013 02:54 pm Juan Quintela

migration: move beginning stage to the migration thread

Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>
Reviewed-by: Paolo Bonzini <>

b9c961a8 01/17/2013 02:54 pm Paolo Bonzini

migration: make function static

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>

25242635 01/17/2013 02:54 pm Paolo Bonzini

migration: remove double call to migrate_fd_close

The call in buffered_close is enough, because buffered_close is called
already by migrate_fd_cleanup.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>...

1e973051 01/17/2013 02:54 pm Paolo Bonzini

migration: fix off-by-one in buffered_rate_limit

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>

f65a8747 01/17/2013 02:53 pm Paolo Bonzini

use XFER_LIMIT_RATIO consistently

commit 5b4e1eb769eee892b44d3f6b2369b05196442f59

missed this use.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

Reviewed-by: Reviewed-by: Eric Blake <>

e659586e 12/21/2012 12:09 am Paolo Bonzini

migration: fix qemu_get_fd for BufferedFile

Not really used, but nice to have it correct. :)

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

9848a404 12/21/2012 12:09 am Juan Quintela

migration: merge QEMUFileBuffered into MigrationState

Avoid splitting the state of outgoing migration, more or less arbitrarily,
between two data structures. QEMUFileBuffered anyway is used only during
migration.

Signed-off-by: Paolo Bonzini <>...

5b4e1eb7 12/21/2012 12:09 am Juan Quintela

migration: add XFER_LIMIT_RATIO

The "magic" divisions by 10 are there because of the value of BUFFER_DELAY.
Introduce a constant to explain them better.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

0e288fa3 12/21/2012 12:09 am Juan Quintela

migration: move migration_fd_put_ready()

Put it near its use and un-export it.

Signed-off-by: Juan Quintela <>

2e450865 12/21/2012 12:09 am Juan Quintela

migration: Inline qemu_fopen_ops_buffered into migrate_fd_connect

Signed-off-by: Juan Quintela <>

0d3b26f5 12/21/2012 12:09 am Juan Quintela

migration: move migration notifier

At this point, it is waranteed that state is ACTIVE. Old position
didn't assured hat.

Signed-off-by: Juan Quintela <>

0d82d0e8 12/21/2012 12:09 am Juan Quintela

migration: move buffered_file.c code into migration.c

This only moves the code (also from buffered_file.h to migration.h).
Fix whitespace until checkpatch is happy.

Signed-off-by: Juan Quintela <>

edfa1af5 12/21/2012 12:09 am Juan Quintela

migration: make qemu_fopen_ops_buffered() return void

We want the file assignment to happen before the thread is created to
avoid locking, so we just do it before creating the thread.

Signed-off-by: Juan Quintela <>

Reviewed-by: Orit Wasserman <>

766bd176 12/21/2012 12:09 am Juan Quintela

migration: move migration thread init code to migrate_fd_put_ready

This way everything related with migration is run on the migration
thread and no locking is needed.

Signed-off-by: Juan Quintela <>

dd217b87 12/21/2012 12:09 am Juan Quintela

migration: make writes blocking

Move all the writes to the migration_thread, and make writings
blocking. Notice that are still using the iothread for everything
that we do.

Signed-off-by: Juan Quintela <>

188a4285 12/21/2012 12:09 am Juan Quintela

migration: remove unfreeze logic

Now that we have a thread, and blocking writes, we don't need it.

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

e7627482 12/21/2012 12:09 am Juan Quintela

migration: just lock migrate_fd_put_ready

Signed-off-by: Juan Quintela <>

e4ed1541 12/21/2012 12:09 am Juan Quintela

savevm: New save live migration method: pending

Code just now does (simplified for clarity)

if (qemu_savevm_state_iterate(s->file) == 1) {
vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
qemu_savevm_state_complete(s->file);
}

Problem here is that qemu_savevm_state_iterate() returns 1 when it...

24ea1e4b 12/20/2012 11:44 pm Paolo Bonzini

migration: remove double call to migrate_fd_close

The call in buffered_close is enough, because buffered_close is called
already by migrate_fd_cleanup.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

9c17d615 12/19/2012 09:32 am Paolo Bonzini

softmmu: move include files to include/sysemu/

Signed-off-by: Paolo Bonzini <>

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

83c9089e 12/19/2012 09:31 am Paolo Bonzini

monitor: move include files to include/monitor/

Signed-off-by: Paolo Bonzini <>

caf71f86 12/19/2012 09:31 am Paolo Bonzini

migration: move include files to include/migration/

Signed-off-by: Paolo Bonzini <>

737e150e 12/19/2012 09:31 am Paolo Bonzini

block: move include files to include/block/

Signed-off-by: Paolo Bonzini <>

82a4da79 11/02/2012 07:35 pm Paolo Bonzini

migration: move process_incoming_migration to a coroutine

The final part of incoming migration, which now consists of
process_incoming_migration for all protocols, is thus made non-blocking.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

8dc592e6 11/02/2012 07:35 pm Paolo Bonzini

migration: use migrate_fd_close in migrate_fd_cleanup

migrate_fd_cleanup will usually close the file descriptor via
buffered_file_close's call to migrate_fd_close. However, in the case
of s->file == NULL it is "inlining" migrate_fd_close (almost: there is a...

1c12e1f5 11/02/2012 07:35 pm Paolo Bonzini

migration: move qemu_fclose to process_incoming_migration

The common suffix is now just process_incoming_migration.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

3f4331bf 10/29/2012 03:55 pm Aurelien Jarno

Merge branch 'queue/qmp' of git://repo.or.cz/qemu/qmp-unstable

  • 'queue/qmp' of git://repo.or.cz/qemu/qmp-unstable:
    migration: go to paused state after finishing incoming migration with -S
    qmp: handle stop/cont in INMIGRATE state
    hmp: fix info cpus for sparc targets
29ed72f1 10/24/2012 04:27 pm Paolo Bonzini

migration: go to paused state after finishing incoming migration with -S

At the end of migration the machine has started already, and cannot be
destroyed without losing the guest's data. Hence, prelaunch is the
wrong state. Go to the paused state instead. QEMU would reach that...

342ab8d1 10/23/2012 02:54 pm Paolo Bonzini

migration: centralize call to migrate_fd_error()

The call to migrate_fd_error() was missing for non-socket backends, so
centralize it in qmp_migrate().

Before:

(qemu) migrate fd:ffff
migrate: An undefined error has occurred
(qemu) info migrate...
e08c95ce 10/23/2012 02:54 pm Paolo Bonzini

migration: use qemu-sockets to establish Unix sockets

This makes migration-unix.c again a cut-and-paste job from migration-tcp.c,
exactly as it was in the beginning. :)

Signed-off-by: Paolo Bonzini <>

f37afb5a 10/23/2012 02:54 pm Paolo Bonzini

migration (outgoing): add error propagation for all protocols

Error propagation is already there for socket backends. Add it to other
protocols, simplifying code that tests for errors that will never happen.
With all protocols understanding Error, the code can be simplified...

43eaae28 10/23/2012 02:54 pm Paolo Bonzini

migration (incoming): add error propagation to fd and exec protocols

And remove the superfluous integer return value.

Reviewed-by: Luiz Capitulino <>
Signed-off-by: Paolo Bonzini <>

be7059cd 10/23/2012 02:54 pm Paolo Bonzini

migration: avoid using error_is_set and thus relying on errp != NULL

The migration code is using errp to detect "internal" errors, this means
that it relies on errp being non-NULL.

No impact so far because our only QMP clients (the QMP marshaller and HMP)...

a2b41351 10/17/2012 07:35 pm Juan Quintela

savevm: make qemu_file_put_notify() return errors

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

749f7909 10/17/2012 07:34 pm Juan Quintela

buffered_file: unfold migrate_fd_wait_for_unfreeze

We only used it once, just remove the callback indirection.

Signed-off-by: Juan Quintela <>

11c76741 10/17/2012 07:34 pm Juan Quintela

buffered_file: unfold migrate_fd_close

We only used it once, just remove the callback indirection.

Signed-off-by: Juan Quintela <>

796b4b0f 10/17/2012 07:34 pm Juan Quintela

buffered_file: We can access directly to bandwidth_limit

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

9499743f 10/17/2012 07:34 pm Juan Quintela

migration: make migrate_fd_wait_for_unfreeze() return errors

Adjust all callers

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

97d4d961 10/17/2012 07:34 pm Juan Quintela

migration: store end_time in a local variable

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>
Reviewed-by: Orit Wasserman <>

9c5a9fcf 10/17/2012 07:34 pm Juan Quintela

migration: print total downtime for final phase of migration

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>
Reviewed-by: Orit Wasserman <>

859bc756 10/17/2012 07:34 pm Juan Quintela

migration: export migrate_get_current()

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

2c52ddf1 10/17/2012 07:34 pm Juan Quintela

migration: print expected downtime in info migrate

Signed-off-by: Juan Quintela <>

8d017193 10/17/2012 07:34 pm Juan Quintela

migration: Add dirty_pages_rate to query migrate output

It indicates how many pages were dirtied during the last second.

Signed-off-by: Juan Quintela <>

c87b015b 10/17/2012 07:34 pm Juan Quintela

buffered_file: unfold migrate_fd_put_buffer

We only used it once, just remove the callback indirection

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

2c9adcb8 10/17/2012 07:34 pm Juan Quintela

buffered_file: unfold migrate_fd_put_ready

We only use it once, just remove the callback indirection.

Signed-off-by: Juan Quintela <>

Reviewed-by: Paolo Bonzini <>

3202beca 09/26/2012 03:05 am Orit Wasserman

Clear handler only for valid fd

Signed-off-by: Orit Wasserman <>
Signed-off-by: Anthony Liguori <>

7aa939af 08/21/2012 09:06 pm Juan Quintela

migration: move total_time from ram stats to migration info

Signed-off-by: Juan Quintela <>
Signed-off-by: Luiz Capitulino <>

17ad9b35 08/08/2012 02:51 pm Orit Wasserman

Add XBZRLE to ram_save_block and ram_save_live

In the outgoing migration check to see if the page is cached and
changed, then send compressed page by using save_xbrle_page function.
In the incoming migration check to see if RAM_SAVE_FLAG_XBZRLE is set
and decompress the page (by using load_xbrle function)....

9e1ba4cc 08/08/2012 02:51 pm Orit Wasserman

Add migrate_set_cache_size command

Change XBZRLE cache size in bytes (the size should be a power of 2, it will be
rounded down to the nearest power of 2).
If XBZRLE cache size is too small there will be many cache miss.

New query-migrate-cache-size QMP command and 'info migrate_cache_size' HMP...

004d4c10 08/08/2012 02:51 pm Orit Wasserman

Add migration accounting for normal and duplicate pages

Signed-off-by: Benoit Hudzia <>
Signed-off-by: Petter Svard <>
Signed-off-by: Aidan Shribman <>
Signed-off-by: Orit Wasserman <>...

f36d55af 08/08/2012 02:51 pm Orit Wasserman

Add XBZRLE statistics

Signed-off-by: Benoit Hudzia <>
Signed-off-by: Petter Svard <>
Signed-off-by: Aidan Shribman <>
Signed-off-by: Orit Wasserman <>
Signed-off-by: Juan Quintela <>...

bbf6da32 08/08/2012 02:51 pm Orit Wasserman

Add migration capabilities

The management can query the current migration capabilities using
query-migrate-capabilities QMP command.
The user can use 'info migrate_capabilities' HMP command.
Currently only XBZRLE capability is available.

Signed-off-by: Orit Wasserman <>...

00458433 08/08/2012 02:51 pm Orit Wasserman

Add migrate-set-capabilities

The management can enable/disable a capability for the next migration by using
migrate-set-capabilities QMP command.
The user can use migrate_set_capability HMP command.

Signed-off-by: Orit Wasserman <>
Signed-off-by: Juan Quintela <>...

d5f8a570 06/29/2012 02:27 pm Juan Quintela

Add spent time for migration

We add time spent for migration to the output of "info migrate"
command. 'total_time' means time since the start fo migration if
migration is 'active', and total time of migration if migration is
completed. As we are also interested in transferred ram when...

6607ae23 06/29/2012 02:18 pm Isaku Yamahata

Add MigrationParams structure

Signed-off-by: Isaku Yamahata <>

d5c5dacc 05/10/2012 08:37 pm Amos Kong

use inet_listen()/inet_connect() to support ipv6 migration

Use help functions in qemu-socket.c for tcp migration,
which already support ipv6 addresses.

Currently errp will be set to UNDEFINED_ERROR when migration fails,
qemu would output "migration failed: ...", and current user can...

7b5d3aa2 05/08/2012 08:29 pm Gerd Hoffmann

wakeup on migration

Wakeup the guest when the live part of the migation is finished.
This avoids being in suspended state on migration, so we don't
have to save the is_suspended bit.

Signed-off-by: Gerd Hoffmann <>
Reviewed-by: Luiz Capitulino <>

901862cb 04/05/2012 05:28 pm Benoît Canet

migration: clear BDRV_O_INCOMING flags on end of incoming live migration

Signed-off-by: Benoît Canet <>
Reviewed-by: Stefan Hajnoczi <>
Signed-off-by: Kevin Wolf <>

539de124 03/15/2012 03:39 pm Luiz Capitulino

Purge migration of (almost) everything to do with monitors

The Monitor object is passed back and forth within the migration/savevm
code so that it can print errors and progress to the user.

However, that approach assumes a HMP monitor, being completely invalid...

e1c37d0e 03/15/2012 03:39 pm Luiz Capitulino

qapi: Convert migrate

The migrate command is one of those commands where HMP and QMP completely
mix up together. This made the conversion to the QAPI (which separates the
command into QMP and HMP parts) a bit difficult.

The first important change to be noticed is that this commit completes the...

31552529 02/17/2012 04:33 pm Paolo Bonzini

notifier: switch to QLIST

Notifiers do not need to access both ends of the list, and using
a QLIST also simplifies the API.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

6b620ca3 01/13/2012 06:55 pm Paolo Bonzini

prepare for future GPLv2+ relicensing

All files under GPLv2 will get GPLv2+ changes starting tomorrow.
event_notifier.c and exec-obsolete.h were only ever touched by Red Hat
employees and can be relicensed now.

Signed-off-by: Paolo Bonzini <>...

a6d34a94 12/12/2011 07:47 pm Eduardo Habkost

migrate_fd_cleanup: accept any negative qemu_fclose() value as error

Also, we now return the qemu_fclose() value unchanged to the caller. For
reference, the migrate_fd_cleanup() callers are the following:

- migrate_fd_completed(): any negative value is considered an...

6cdedb07 12/06/2011 03:40 pm Luiz Capitulino

qapi: Convert migrate_cancel

Signed-off-by: Luiz Capitulino <>

4f0a993b 12/06/2011 03:40 pm Luiz Capitulino

qapi: Convert migrate_set_downtime

Signed-off-by: Luiz Capitulino <>

3dc85383 12/06/2011 03:40 pm Luiz Capitulino

qapi: Convert migrate_set_speed

Signed-off-by: Luiz Capitulino <>

0f15423c 11/21/2011 10:58 pm Anthony Liguori

block: allow migration to work with image files (v3)

Image files have two types of data: immutable data that describes things like
image size, backing files, etc. and mutable data that includes offset and
reference count tables.

Today, image formats aggressively cache mutable data to improve performance. In...

fa2756b7 11/21/2011 10:57 pm Anthony Liguori

migrate: add migration blockers

This lets different subsystems register an Error that is thrown whenever
migration is attempted. This works nicely because it gracefully supports
things like hotplug.

Right now, if multiple errors are registered, only one of them is reported....

1299c631 11/11/2011 08:49 pm Juan Quintela

migration: fix detached migration with fd

Migration with fd uses s->mon to pass the fd. But we only assign the
s->mon for !detached migration. Fix it. Once there add a comment
indicating that s->mon has two uses.

Bug reported by: Wen Congyang <>...

1fdc11c3 11/01/2011 06:50 pm Luiz Capitulino

Fix segfault on migration completion

A simple migration reproduces it:

1. Start the source VM with:

  1. qemu [...] -S

2. Start the destination VM with:

  1. qemu <source VM cmd-line> -incoming tcp:0:4444

3. In the source VM:

(qemu) migrate -d tcp:0:4444...
96b3d73f 10/31/2011 06:02 pm Anthony Liguori

Merge remote-tracking branch 'qmp/queue/qmp' into staging

Conflicts:
ui/spice-core.c

791e7c82 10/27/2011 04:48 pm Luiz Capitulino

qapi: Convert query-migrate

Signed-off-by: Anthony Liguori <>
Signed-off-by: Luiz Capitulino <>

afe2df69 10/25/2011 02:59 pm Gerd Hoffmann

migration: add status query functions

Add migration_is_active and migration_has_failed functions
to query migration state.

Signed-off-by: Gerd Hoffmann <>

a6e43daa 10/20/2011 04:46 pm Anthony Liguori

Merge remote-tracking branch 'quintela/migration-pull' into staging

48a2f4d6 10/20/2011 02:23 pm Juan Quintela

migration: Remove get_status() accessor

It is only used inside migration.c, and fields on that struct are
accessed all around the place on that file.

Signed-off-by: Juan Quintela <>

767de722 10/20/2011 02:23 pm Juan Quintela

migration: Remove migration cancel() callback

It is used only in one place

Signed-off-by: Juan Quintela <>

cab30143 10/20/2011 02:23 pm Juan Quintela

migration: Move exported functions to the end of the file

This means we can remove the two forward declarations.

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

17549e84 10/20/2011 02:23 pm Juan Quintela

migration: create accessor for current_migration

Signed-off-by: Juan Quintela <>

d0ae46c1 10/20/2011 02:23 pm Juan Quintela

migration: Use bandwidth_limit directly

Now that current_migration always exist, there is no reason for
max_throotle variable.

Signed-off-by: Juan Quintela <>

e0eb7390 10/20/2011 02:23 pm Juan Quintela

migration: Pass MigrationState in migration notifiers

Signed-off-by: Juan Quintela <>

7073693b 10/20/2011 02:23 pm Juan Quintela

migration: Export a function that tells if the migration has finished correctly

This will allow us to hide the state values.

Signed-off-by: Juan Quintela <>

7dc688ed 10/20/2011 02:23 pm Juan Quintela

migration: Make state definitions local

Signed-off-by: Juan Quintela <>

3f77fc55 10/20/2011 02:23 pm Juan Quintela

migration: Fold MigrationState into FdMigrationState

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

22f00a44 10/20/2011 02:23 pm Juan Quintela

migration: Rename FdMigrationState MigrationState

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

0edda1c4 10/20/2011 02:23 pm Juan Quintela

migration: Refactor MigrationState creation

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

8b6b99b3 10/20/2011 02:23 pm Juan Quintela

migration: Make all posible migration functions static

I have to move two functions postions to avoid forward declarations

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

07af4452 10/20/2011 02:23 pm Juan Quintela

migration: move migrate_new to do_migrate

Once there, remove all parameters that don't need to be passed to
*start_outgoing_migration() functions

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

d5934dde 10/20/2011 02:23 pm Juan Quintela

migration: Introduce MIG_STATE_SETUP

Use MIG_STATE_ACTIVE only when migration has really started. Use this
new state to setup migration parameters. Change defines for an
anonymous struct.

Signed-off-by: Juan Quintela <>

67afff79 10/20/2011 02:23 pm Juan Quintela

migration: Refactor and simplify error checking in migrate_fd_put_ready

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

458cf28e 10/20/2011 02:23 pm Juan Quintela

migration: Introduce migrate_fd_completed() for consistency

This function is a bit different of the others that change the state,
in the sense that if migrate_fd_cleanup() returns an error, it set the
status to error, not completed.

Signed-off-by: Juan Quintela <>

92920cd7 10/20/2011 02:23 pm Juan Quintela

migration: Our release callback was just free

We called it from a single place, and always with state !=
MIG_STATE_ACTIVE. Just remove the whole callback. For users of the
notifier, notice that this is exactly the case where they don't care,
we are just freeing the state from previous failed migration (it can't...

dc7acc61 10/20/2011 02:23 pm Juan Quintela

migration: Use FdMigrationState instead of MigrationState when possible

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>