X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ffbdff4f680a7bf0e9aca6609b4bed7229397622..dd22867177c86db2e9d0b76852cb09e044b1c0c8:/src/surf/vm_workstation.c diff --git a/src/surf/vm_workstation.c b/src/surf/vm_workstation.c index be8d08c8fa..1ad14a76ec 100644 --- a/src/surf/vm_workstation.c +++ b/src/surf/vm_workstation.c @@ -11,8 +11,8 @@ #include "surf/surf_resource.h" #include "simgrid/sg_config.h" #include "vm_workstation_private.h" -#include "surf/cpu_cas01_private.h" -#include "surf/maxmin_private.h" +#include "cpu_cas01_private.h" +#include "maxmin_private.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_vm_workstation, surf, "Logging specific to the SURF VM workstation module"); @@ -108,8 +108,6 @@ static void vm_ws_migrate(void *ind_vm, void *ind_dst_pm) 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 */ @@ -145,7 +143,7 @@ static void vm_ws_migrate(void *ind_vm, void *ind_dst_pm) 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"); @@ -155,8 +153,6 @@ static void vm_ws_migrate(void *ind_vm, void *ind_dst_pm) 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; } /* @@ -171,7 +167,6 @@ static void vm_ws_destroy(void *ind_vm_workstation) workstation_VM2013_t vm_ws = surf_workstation_resource_priv(ind_vm_workstation); cpu_Cas01_t cpu = surf_cpu_resource_priv(ind_vm_workstation); const char *name = vm_ws->ws.generic_resource.name; - XBT_INFO("%s", name); xbt_assert(vm_ws); xbt_assert(vm_ws->ws.generic_resource.model == surf_vm_workstation_model); @@ -225,7 +220,6 @@ static void vm_ws_suspend(void *ind_vm_ws) { workstation_VM2013_t vm_ws = surf_workstation_resource_priv(ind_vm_ws); - XBT_INFO("vm %p suspend", ind_vm_ws); surf_action_suspend(vm_ws->cpu_action); vm_ws->current_state = SURF_VM_STATE_SUSPENDED; @@ -386,16 +380,17 @@ static double vm_ws_share_resources(surf_model_t workstation_model, double now) 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); @@ -424,9 +419,8 @@ static void *vm_ws_get_pm(void *ind_vm_ws) } - /* 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)); @@ -436,7 +430,7 @@ surf_action_t vm_ws_execute(void *workstation, double size) 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); @@ -478,10 +472,11 @@ static void surf_vm_workstation_model_init_internal(void) // 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 @@ -498,7 +493,7 @@ static void surf_vm_workstation_model_init_internal(void) 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;