xbt_assert(ws_vm2013);
xbt_assert(ws_clm03_dst);
- ws_vm2013->current_state = SURF_VM_STATE_MIGRATING;
-
/* do something */
/* update net_elm with that of the destination physical host */
if (state != SURF_ACTION_DONE)
XBT_CRITICAL("FIXME: may need a proper handling, %d", state);
if (ws_vm2013->cpu_action->remains > 0)
- XBT_CRITICAL("FIXME: need copy the state(?), %d", ws_vm2013->cpu_action->remains);
+ XBT_CRITICAL("FIXME: need copy the state(?), %f", ws_vm2013->cpu_action->remains);
int ret = surf_cpu_model_pm->action_unref(ws_vm2013->cpu_action);
xbt_assert(ret == 1, "Bug: some resource still remains");
XBT_DEBUG("migrate VM(%s): change net_elm (%p to %p)", vm_name, old_net_elm, new_net_elm);
XBT_DEBUG("migrate VM(%s): change PM (%s to %s)", vm_name, pm_name_src, pm_name_dst);
-
- ws_vm2013->current_state = SURF_VM_STATE_RUNNING;
}
/*
continue;
/* It is a virtual machine, so we can cast it to workstation_VM2013_t */
- workstation_VM2013_t ws_vm2013 = (workstation_VM2013_t) ws_clm03;
{
- void *ind_sub_host = xbt_lib_get_elm_or_null(host_lib, ws_vm2013->sub_ws->generic_resource.name);
+#if 0
+ workstation_VM2013_t ws_vm2013 = (workstation_VM2013_t) ws_clm03;
XBT_INFO("cost %f remains %f start %f finish %f", ws_vm2013->cpu_action->cost,
ws_vm2013->cpu_action->remains,
ws_vm2013->cpu_action->start,
ws_vm2013->cpu_action->finish
);
-
+#endif
#if 0
+ void *ind_sub_host = xbt_lib_get_elm_or_null(host_lib, ws_vm2013->sub_ws->generic_resource.name);
surf_cpu_model_pm->action_unref(ws_vm2013->cpu_action);
/* FIXME: this means busy loop? */
// ws_vm2013->cpu_action = surf_cpu_model_pm->extension.cpu.execute(ind_sub_host, GUESTOS_NOISE);
/* Adding a task to a VM updates the VCPU task on its physical machine. */
-surf_action_t vm_ws_execute(void *workstation, double size)
+static surf_action_t vm_ws_execute(void *workstation, double size)
{
surf_resource_t ws = ((surf_resource_t) surf_workstation_resource_priv(workstation));
double old_cost = vm_ws->cpu_action->cost;
double new_cost = old_cost + size;
- XBT_INFO("VM(%s)@PM(%s): update dummy action's cost (%f -> %f)",
+ XBT_DEBUG("VM(%s)@PM(%s): update dummy action's cost (%f -> %f)",
ws->name, vm_ws->sub_ws->generic_resource.name,
old_cost, new_cost);
// model->is_suspended = ws_action_is_suspended;
// model->set_max_duration = ws_action_set_max_duration;
model->set_priority = ws_action_set_priority;
+ model->set_bound = ws_action_set_bound;
// #ifdef HAVE_TRACING
// model->set_category = ws_action_set_category;
// #endif
-// model->get_remains = ws_action_get_remains;
+ model->get_remains = ws_action_get_remains;
// #ifdef HAVE_LATENCY_BOUND_TRACKING
// model->get_latency_limited = ws_get_latency_limited;
// #endif
model->extension.workstation.execute = vm_ws_execute;
model->extension.workstation.sleep = ws_action_sleep;
model->extension.workstation.get_state = ws_get_state;
- // model->extension.workstation.get_speed = ws_get_speed;
+ model->extension.workstation.get_speed = ws_get_speed;
// model->extension.workstation.get_available_speed = ws_get_available_speed;
// model->extension.workstation.communicate = ws_communicate;