From: Martin Quinson Date: Sun, 7 Feb 2016 20:56:37 +0000 (+0100) Subject: sanitize bw and lat in Links: they are now s_surf_metric_t X-Git-Tag: v3_13~939 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2c81199c603dbd371a6c0f6936e5a4e5fbd4a5aa sanitize bw and lat in Links: they are now s_surf_metric_t --- diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index adc4aba6ea..ece1449fea 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -359,7 +359,7 @@ void HostL07Model::addTraces() xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - link->p_stateEvent = future_evt_set->add_trace(trace, 0.0, link); + link->m_stateEvent = future_evt_set->add_trace(trace, 0.0, link); } xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) { @@ -369,7 +369,7 @@ void HostL07Model::addTraces() xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - link->p_bwEvent = future_evt_set->add_trace(trace, 0.0, link); + 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) { @@ -379,7 +379,7 @@ void HostL07Model::addTraces() xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - link->p_latEvent = future_evt_set->add_trace(trace, 0.0, link); + link->m_latency.event = future_evt_set->add_trace(trace, 0.0, link); } } @@ -417,18 +417,18 @@ LinkL07::LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props, e_surf_link_sharing_policy_t policy) : Link(model, name, props, lmm_constraint_new(model->getMaxminSystem(), this, bw_initial), future_evt_set, state_trace) { - m_bwCurrent = bw_initial; + m_bandwidth.peak = bw_initial; if (bw_trace) - p_bwEvent = future_evt_set->add_trace(bw_trace, 0.0, this); + m_bandwidth.event = future_evt_set->add_trace(bw_trace, 0.0, this); if (initiallyOn) turnOn(); else turnOff(); - m_latCurrent = lat_initial; + m_latency.peak = lat_initial; if (lat_trace) - p_latEvent = future_evt_set->add_trace(lat_trace, 0.0, this); + m_latency.event = future_evt_set->add_trace(lat_trace, 0.0, this); if (policy == SURF_LINK_FATPIPE) lmm_constraint_shared(getConstraint()); @@ -502,32 +502,27 @@ void CpuL07::updateState(tmgr_trace_iterator_t triggered, double value, double / void LinkL07::updateState(tmgr_trace_iterator_t triggered, double value, double date) { XBT_DEBUG("Updating link %s (%p) with value=%f for date=%g", getName(), this, value, date); - if (triggered == p_bwEvent) { + if (triggered == m_bandwidth.event) { updateBandwidth(value, date); - tmgr_trace_event_unref(&p_bwEvent); - } else if (triggered == p_latEvent) { + tmgr_trace_event_unref(&m_bandwidth.event); + } else if (triggered == m_latency.event) { updateLatency(value, date); - tmgr_trace_event_unref(&p_latEvent); - } else if (triggered == p_stateEvent) { + tmgr_trace_event_unref(&m_latency.event); + } else if (triggered == m_stateEvent) { if (value > 0) turnOn(); else turnOff(); - tmgr_trace_event_unref(&p_stateEvent); + tmgr_trace_event_unref(&m_stateEvent); } else { xbt_die("Unknown event ! \n"); } } -double LinkL07::getBandwidth() -{ - return m_bwCurrent; -} - void LinkL07::updateBandwidth(double value, double date) { - m_bwCurrent = value; - lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_bwCurrent); + m_bandwidth.peak = value; + lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_bandwidth.peak * m_bandwidth.scale); } void LinkL07::updateLatency(double value, double date) @@ -536,7 +531,7 @@ void LinkL07::updateLatency(double value, double date) L07Action *action; lmm_element_t elem = NULL; - m_latCurrent = value; + m_latency.peak = value; while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), getConstraint(), &elem))) { action = static_cast(lmm_variable_id(var)); action->updateBound(); diff --git a/src/surf/host_ptask_L07.hpp b/src/surf/host_ptask_L07.hpp index 5ca5d5a197..18a3d3f486 100644 --- a/src/surf/host_ptask_L07.hpp +++ b/src/surf/host_ptask_L07.hpp @@ -119,12 +119,8 @@ public: ~LinkL07(){ }; bool isUsed() override; void updateState(tmgr_trace_iterator_t event_type, double value, double date) override; - double getBandwidth() override; void updateBandwidth(double value, double date=surf_get_clock()) override; void updateLatency(double value, double date=surf_get_clock()) override; - - double m_bwCurrent; - tmgr_trace_iterator_t p_bwEvent; }; /********** diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 2e503cc550..318c3b9272 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -480,7 +480,7 @@ void NetworkCm02Model::addTraces(){ "Cannot connect trace %s to link %s: trace undefined", trace_name, elm); - link->p_stateEvent = future_evt_set->add_trace(trace, 0.0, link); + link->m_stateEvent = future_evt_set->add_trace(trace, 0.0, link); } xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) { @@ -493,7 +493,7 @@ void NetworkCm02Model::addTraces(){ "Cannot connect trace %s to link %s: trace undefined", trace_name, elm); - link->p_speed.event = future_evt_set->add_trace(trace, 0.0, link); + 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) { @@ -506,7 +506,7 @@ void NetworkCm02Model::addTraces(){ "Cannot connect trace %s to link %s: trace undefined", trace_name, elm); - link->p_latEvent = future_evt_set->add_trace(trace, 0.0, link); + link->m_latency.event = future_evt_set->add_trace(trace, 0.0, link); } } @@ -528,16 +528,17 @@ NetworkCm02Link::NetworkCm02Link(NetworkCm02Model *model, const char *name, xbt_ else turnOff(); - p_speed.scale = 1.0; - p_speed.peak = bw_peak; + m_bandwidth.scale = 1.0; + m_bandwidth.peak = bw_peak; if (bw_trace) - p_speed.event = fes->add_trace(bw_trace, 0.0, this); + m_bandwidth.event = fes->add_trace(bw_trace, 0.0, this); else - p_speed.event = NULL; + m_bandwidth.event = NULL; - m_latCurrent = lat_initial; + m_latency.scale = 1.0; + m_latency.peak = lat_initial; if (lat_trace) - p_latEvent = fes->add_trace(lat_trace, 0.0, this); + m_latency.event = fes->add_trace(lat_trace, 0.0, this); if (policy == SURF_LINK_FATPIPE) lmm_constraint_shared(getConstraint()); @@ -550,13 +551,13 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, { /* Find out which of my iterators was triggered, and react accordingly */ - if (triggered == p_speed.event) { + if (triggered == m_bandwidth.event) { updateBandwidth(value, date); - tmgr_trace_event_unref(&p_speed.event); - } else if (triggered == p_latEvent) { + tmgr_trace_event_unref(&m_bandwidth.event); + } else if (triggered == m_latency.event) { updateLatency(value, date); - tmgr_trace_event_unref(&p_latEvent); - } else if (triggered == p_stateEvent) { + tmgr_trace_event_unref(&m_latency.event); + } else if (triggered == m_stateEvent) { if (value > 0) turnOn(); else { @@ -574,7 +575,7 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, } } } - tmgr_trace_event_unref(&p_stateEvent); + tmgr_trace_event_unref(&m_stateEvent); } else { xbt_die("Unknown event!\n"); } @@ -586,7 +587,7 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered, void NetworkCm02Link::updateBandwidth(double value, double date){ double delta = sg_weight_S_parameter / value - sg_weight_S_parameter / - (p_speed.peak * p_speed.scale); + (m_bandwidth.peak * m_bandwidth.scale); lmm_variable_t var = NULL; lmm_element_t elem = NULL; lmm_element_t nextelem = NULL; @@ -594,12 +595,12 @@ void NetworkCm02Link::updateBandwidth(double value, double date){ NetworkCm02Action *action = NULL; - p_speed.peak = value; + m_bandwidth.peak = value; lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), sg_bandwidth_factor * - (p_speed.peak * p_speed.scale)); - TRACE_surf_link_set_bandwidth(date, getName(), sg_bandwidth_factor * p_speed.peak * p_speed.scale); + (m_bandwidth.peak * m_bandwidth.scale)); + TRACE_surf_link_set_bandwidth(date, getName(), sg_bandwidth_factor * m_bandwidth.peak * m_bandwidth.scale); if (sg_weight_S_parameter > 0) { while ((var = lmm_get_var_from_cnst_safe(getModel()->getMaxminSystem(), getConstraint(), &elem, &nextelem, &numelem))) { action = (NetworkCm02Action*) lmm_variable_id(var); @@ -611,14 +612,14 @@ void NetworkCm02Link::updateBandwidth(double value, double date){ } void NetworkCm02Link::updateLatency(double value, double date){ - double delta = value - m_latCurrent; + double delta = value - m_latency.peak; lmm_variable_t var = NULL; lmm_element_t elem = NULL; lmm_element_t nextelem = NULL; int numelem = 0; NetworkCm02Action *action = NULL; - m_latCurrent = value; + m_latency.peak = value; while ((var = lmm_get_var_from_cnst_safe(getModel()->getMaxminSystem(), getConstraint(), &elem, &nextelem, &numelem))) { action = (NetworkCm02Action*) lmm_variable_id(var); action->m_latCurrent += delta; diff --git a/src/surf/network_interface.cpp b/src/surf/network_interface.cpp index 1ed38ad77f..b6494769f6 100644 --- a/src/surf/network_interface.cpp +++ b/src/surf/network_interface.cpp @@ -196,6 +196,8 @@ Link::Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t prop { links->insert({name, this}); + m_latency.scale = 1; + m_bandwidth.scale = 1; XBT_DEBUG("Create link '%s'",name); } @@ -206,8 +208,10 @@ Link::Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t prop : Resource(model, name, constraint), PropertyHolder(props) { + m_latency.scale = 1; + m_bandwidth.scale = 1; if (state_trace) - p_stateEvent = fes->add_trace(state_trace, 0.0, this); + m_stateEvent = fes->add_trace(state_trace, 0.0, this); links->insert({name, this}); XBT_DEBUG("Create link '%s'",name); @@ -238,12 +242,12 @@ bool Link::isUsed() double Link::getLatency() { - return m_latCurrent; + return m_latency.peak * m_latency.scale; } double Link::getBandwidth() { - return p_speed.peak * p_speed.scale; + return m_bandwidth.peak * m_bandwidth.scale; } int Link::sharingPolicy() diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index eee8fae205..599b24e522 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -237,14 +237,9 @@ public: void turnOn() override; void turnOff() override; - /* Using this object with the public part of - model does not make sense */ - double m_latCurrent = 0; - tmgr_trace_iterator_t p_latEvent = NULL; - - /* LMM */ - tmgr_trace_iterator_t p_stateEvent = NULL; - s_surf_metric_t p_speed; + tmgr_trace_iterator_t m_stateEvent = NULL; + s_surf_metric_t m_latency = {1.0,0,NULL}; + s_surf_metric_t m_bandwidth = {1.0,0,NULL}; /* User data */ public: diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 5675e730b0..00069455cd 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -393,9 +393,8 @@ NetworkNS3Link::NetworkNS3Link(NetworkNS3Model *model, const char *name, xbt_dic : Link(model, name, props) , m_created(1) { - p_speed.scale = 1.0; - p_speed.peak = bw_initial; - m_latCurrent = lat_initial; + m_bandwidth.peak = bw_initial; + m_latency.peak = lat_initial; } NetworkNS3Link::~NetworkNS3Link()