static void vm_migrate(msg_vm_t vm, msg_host_t dst_pm) { msg_host_t src_pm = MSG_vm_get_pm(vm); double mig_sta = MSG_get_clock(); MSG_vm_migrate(vm, dst_pm); double mig_end = MSG_get_clock(); XBT_INFO("%s migrated: %s->%s in %g s", MSG_vm_get_name(vm), MSG_host_get_name(src_pm), MSG_host_get_name(dst_pm), mig_end - mig_sta); }
static void vm_migrate_async(msg_vm_t vm, msg_host_t dst_pm) { const char *vm_name = MSG_vm_get_name(vm); const char *dst_pm_name = MSG_host_get_name(dst_pm); msg_host_t host = MSG_host_self(); const char *pr_name = "mig_wrk"; char **argv = xbt_new(char *, 4); argv[0] = xbt_strdup(pr_name); argv[1] = xbt_strdup(vm_name); argv[2] = xbt_strdup(dst_pm_name); argv[3] = NULL; MSG_process_create_with_arguments(pr_name, migration_worker_main, NULL, host, 3, argv); }