#include "qapi/qmp/qerror.h"
#include "qapi/qmp/qnull.h"
#include "qemu/rcu.h"
-#include "block.h"
#include "postcopy-ram.h"
#include "qemu/thread.h"
#include "trace.h"
migration_object_check(current_migration, &error_fatal);
- blk_mig_init();
ram_mig_init();
dirty_bitmap_mig_init();
}
}
}
-static void populate_disk_info(MigrationInfo *info)
-{
- if (blk_mig_active()) {
- info->disk = g_malloc0(sizeof(*info->disk));
- info->disk->transferred = blk_mig_bytes_transferred();
- info->disk->remaining = blk_mig_bytes_remaining();
- info->disk->total = blk_mig_bytes_total();
- }
-}
-
static void fill_source_migration_info(MigrationInfo *info)
{
MigrationState *s = migrate_get_current();
/* TODO add some postcopy stats */
populate_time_info(info, s);
populate_ram_info(info, s);
- populate_disk_info(info);
migration_populate_vfio_info(info);
break;
case MIGRATION_STATUS_COLO:
type = migration_has_failed(s) ? MIG_EVENT_PRECOPY_FAILED :
MIG_EVENT_PRECOPY_DONE;
migration_call_notifiers(s, type, NULL);
- block_cleanup_parameters();
yank_unregister_instance(MIGRATION_YANK_INSTANCE);
}
"a valid migration protocol");
migrate_set_state(&s->state, MIGRATION_STATUS_SETUP,
MIGRATION_STATUS_FAILED);
- block_cleanup_parameters();
}
if (local_err) {