X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4736926935eb52f1e561715d2fa5a3fc4144a188..7b3e6dbec91461f76c2c94185e583654e967be53:/src/surf/vm_hl13.cpp diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index 89cbef1622..3310186c86 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -176,15 +176,15 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t hos * from the VM name, we have to make sure that the system does not call the * free callback for the network resource object. The network resource object * is still used by the physical machine. */ - p_netElm = new RoutingEdgeWrapper(sg_host_edge(host_PM)); + p_netElm = new RoutingEdgeWrapper(host_PM->p_netcard); sg_host_t host = sg_host_by_name_or_create(name); - sg_host_edge_set(host, p_netElm); + host->p_netcard = p_netElm; p_currentState = SURF_VM_STATE_CREATED; // //// CPU RELATED STUFF //// // Roughly, create a vcpu resource by using the values of the sub_cpu one. - CpuCas01 *sub_cpu = static_cast(sg_host_surfcpu(host_PM)); + CpuCas01 *sub_cpu = static_cast(host_PM->p_cpu); p_cpu = surf_cpu_model_vm->createCpu(host, // the machine hosting the VM sub_cpu->getSpeedPeakList(), // host->power_peak, @@ -277,24 +277,23 @@ void VMHL13::migrate(sg_host_t host_dest) xbt_assert(surfHost_dst); /* update net_elm with that of the destination physical host */ - RoutingEdge *old_net_elm = p_netElm; - RoutingEdge *new_net_elm = new RoutingEdgeWrapper(sg_host_edge(sg_host_by_name(pm_name_dst))); + NetCard *old_net_elm = p_netElm; + NetCard *new_net_elm = new RoutingEdgeWrapper(sg_host_by_name(pm_name_dst)->p_netcard); xbt_assert(new_net_elm); /* Unregister the current net_elm from host_lib. Do not call the free callback. */ - sg_host_edge_destroy(sg_host_by_name(vm_name), 0); + sg_host_by_name(vm_name)->p_netcard = nullptr; /* Then, resister the new one. */ p_netElm = new_net_elm; - sg_host_edge_set(sg_host_by_name(vm_name), p_netElm); + sg_host_by_name(vm_name)->p_netcard = p_netElm; p_hostPM = 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( - static_cast(sg_host_surfcpu(host_dest))->execute(0)); + CpuAction *new_cpu_action = static_cast(host_dest->p_cpu->execute(0)); e_surf_action_state_t state = p_action->getState(); if (state != SURF_ACTION_DONE) @@ -328,24 +327,6 @@ void VMHL13::setAffinity(Cpu *cpu, unsigned long mask){ p_action->setAffinity(cpu, mask); } -/* Adding a task to a VM updates the VCPU task on its physical machine. */ -Action *VMHL13::execute(double size) -{ - double old_cost = p_action->getCost(); - double new_cost = old_cost + size; - - XBT_DEBUG("VM(%s)@PM(%s): update dummy action's cost (%f -> %f)", - getName(), p_hostPM->getName().c_str(), - old_cost, new_cost); - - p_action->setCost(new_cost); - - return p_cpu->execute(size); -} - -Action *VMHL13::sleep(double duration) { - return p_cpu->sleep(duration); -} } }