X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3e0c19b51995dedb551e2f7f7af05e2f20f29845..8d777265e12b0b9c5f13fecfc719474cdd214e9e:/src/surf/vm_hl13.cpp diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index b982795595..d34f21dbb5 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -42,11 +42,6 @@ VirtualMachine *VMHL13Model::createVM(const char *name, sg_host_t host_PM) return vm; } -static inline double get_solved_value(CpuAction *cpu_action) -{ - return cpu_action->getVariable()->value; -} - /* In the real world, processes on the guest operating system will be somewhat * degraded due to virtualization overhead. The total CPU share that these * processes get is smaller than that of the VM process gets on a host @@ -91,9 +86,9 @@ double VMHL13Model::shareResources(double now) Cpu *cpu = ws_vm->p_cpu; xbt_assert(cpu, "cpu-less host"); - double solved_value = get_solved_value(ws_vm->p_action); + double solved_value = ws_vm->p_action->getVariable()->value; XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, - ws_vm->getName(), ws_vm->p_hostPM->getName().c_str()); + ws_vm->getName(), ws_vm->p_hostPM->name().c_str()); // TODO: check lmm_update_constraint_bound() works fine instead of the below manual substitution. // cpu_cas01->constraint->bound = solved_value; @@ -127,39 +122,6 @@ double VMHL13Model::shareResources(double now) return ret; } -Action *VMHL13Model::executeParallelTask(int host_nb, - sg_host_t *host_list, - double *flops_amount, - double *bytes_amount, - double rate){ -#define cost_or_zero(array,pos) ((array)?(array)[pos]:0.0) - if ((host_nb == 1) - && (cost_or_zero(bytes_amount, 0) == 0.0)) - return host_list[0]->pimpl_cpu->execute(flops_amount[0]); - else if ((host_nb == 1) - && (cost_or_zero(flops_amount, 0) == 0.0)) - return surf_network_model_communicate(surf_network_model, host_list[0], host_list[0],bytes_amount[0], rate); - else if ((host_nb == 2) - && (cost_or_zero(flops_amount, 0) == 0.0) - && (cost_or_zero(flops_amount, 1) == 0.0)) { - int i,nb = 0; - double value = 0.0; - - for (i = 0; i < host_nb * host_nb; i++) { - if (cost_or_zero(bytes_amount, i) > 0.0) { - nb++; - value = cost_or_zero(bytes_amount, i); - } - } - if (nb == 1) - return surf_network_model_communicate(surf_network_model, host_list[0], host_list[1], value, rate); - } -#undef cost_or_zero - - THROW_UNIMPLEMENTED; /* This model does not implement parallel tasks for more than 2 hosts. */ - return NULL; -} - /************ * Resource * ************/ @@ -196,10 +158,10 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t hos /* We create cpu_action corresponding to a VM process on the host operating system. */ /* FIXME: TODO: we have to periodically input GUESTOS_NOISE to the system? how ? */ - // vm_ws->cpu_action = surf_cpu_model_pm->extension.cpu.execute(host_PM, GUESTOS_NOISE); - p_action = sub_cpu->execute(0); + p_action = sub_cpu->execution_start(0); - XBT_INFO("Create VM(%s)@PM(%s) with %ld mounted disks", name, p_hostPM->getName().c_str(), xbt_dynar_length(p_storage)); + XBT_INFO("Create VM(%s)@PM(%s) with %ld mounted disks", + name, p_hostPM->name().c_str(), xbt_dynar_length(p_storage)); } void VMHL13::suspend() @@ -239,7 +201,7 @@ void VMHL13::migrate(sg_host_t host_dest) { Host *surfHost_dst = host_dest->extension(); const char *vm_name = getName(); - const char *pm_name_src = p_hostPM->getName().c_str(); + const char *pm_name_src = p_hostPM->name().c_str(); const char *pm_name_dst = surfHost_dst->getName(); /* update net_elm with that of the destination physical host */ @@ -250,7 +212,7 @@ void VMHL13::migrate(sg_host_t host_dest) /* Update vcpu's action for the new pm */ { /* create a cpu action bound to the pm model at the destination. */ - CpuAction *new_cpu_action = static_cast(host_dest->pimpl_cpu->execute(0)); + CpuAction *new_cpu_action = static_cast(host_dest->pimpl_cpu->execution_start(0)); e_surf_action_state_t state = p_action->getState(); if (state != SURF_ACTION_DONE)