X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ede7d4e0f2464d8646f1d1a3b09fa7f678660ade..7a9c73193ecafbb368417633205702fe2499bb83:/src/surf/host_ptask_L07.cpp diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index a3224f7dc1..e31cc32e12 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -36,9 +36,6 @@ void surf_host_model_init_ptask_L07(void) // Define the callbacks to parse the XML simgrid::surf::on_link.connect(ptask_netlink_parse_init); - simgrid::surf::on_postparse.connect([](){ - surf_host_model->addTraces(); - }); surf_host_model = new simgrid::surf::HostL07Model(); xbt_dynar_push(all_existing_models, &surf_host_model); @@ -332,57 +329,6 @@ Link* NetworkL07Model::createLink(const char *name, return link; } -void HostL07Model::addTraces() -{ - xbt_dict_cursor_t cursor = NULL; - char *trace_name, *elm; - - if (!trace_connect_list_host_speed) - return; - - /* Connect traces relative to cpu */ - xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) { - tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu; - - xbt_assert(cpu, "Host %s undefined", elm); - xbt_assert(trace, "Trace %s undefined", trace_name); - - cpu->set_speed_trace(trace); - } - - /* Connect traces relative to network */ - xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) { - tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07 *link = static_cast(Link::byName(elm)); - - xbt_assert(link, "Link %s undefined", elm); - xbt_assert(trace, "Trace %s undefined", trace_name); - - link->m_stateEvent = future_evt_set->add_trace(trace, 0.0, link); - } - - xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) { - tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07 *link = static_cast(Link::byName(elm)); - - xbt_assert(link, "Link %s undefined", elm); - xbt_assert(trace, "Trace %s undefined", trace_name); - - link->m_bandwidth.event = future_evt_set->add_trace(trace, 0.0, link); - } - - xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) { - tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07 *link = static_cast(Link::byName(elm)); - - xbt_assert(link, "Link %s undefined", elm); - xbt_assert(trace, "Trace %s undefined", trace_name); - - link->m_latency.event = future_evt_set->add_trace(trace, 0.0, link); - } -} - /************ * Resource * ************/ @@ -397,7 +343,7 @@ CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, p_constraint = lmm_constraint_new(model->getMaxminSystem(), this, xbt_dynar_get_as(speedPeakList,pstate,double) * speedScale); if (speedTrace) - p_speedEvent = future_evt_set->add_trace(speedTrace, 0.0, this); + p_speed.event = future_evt_set->add_trace(speedTrace, 0.0, this); if (state_trace) p_stateEvent = future_evt_set->add_trace(state_trace, 0.0, this); @@ -462,14 +408,14 @@ void CpuL07::onSpeedChange() { lmm_variable_t var = NULL; lmm_element_t elem = NULL; - lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_speedPeak * m_speedScale); + lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), p_speed.peak * p_speed.scale); while ((var = lmm_get_var_from_cnst (getModel()->getMaxminSystem(), getConstraint(), &elem))) { Action *action = static_cast(lmm_variable_id(var)); lmm_update_variable_bound(getModel()->getMaxminSystem(), action->getVariable(), - m_speedScale * m_speedPeak); + p_speed.scale * p_speed.peak); } Cpu::onSpeedChange(); @@ -480,12 +426,12 @@ bool LinkL07::isUsed(){ return lmm_constraint_used(getModel()->getMaxminSystem(), getConstraint()); } -void CpuL07::updateState(tmgr_trace_iterator_t triggered, double value){ +void CpuL07::apply_event(tmgr_trace_iterator_t triggered, double value){ XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value); - if (triggered == p_speedEvent) { - m_speedScale = value; + if (triggered == p_speed.event) { + p_speed.scale = value; onSpeedChange(); - tmgr_trace_event_unref(&p_speedEvent); + tmgr_trace_event_unref(&p_speed.event); } else if (triggered == p_stateEvent) { if (value > 0) turnOn(); @@ -497,7 +443,7 @@ void CpuL07::updateState(tmgr_trace_iterator_t triggered, double value){ } } -void LinkL07::updateState(tmgr_trace_iterator_t triggered, double value) { +void LinkL07::apply_event(tmgr_trace_iterator_t triggered, double value) { XBT_DEBUG("Updating link %s (%p) with value=%f", getName(), this, value); if (triggered == m_bandwidth.event) { updateBandwidth(value);