From 9c6c2ee3fd99b53db0d6bdcf773b1188a01d885b Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 3 Feb 2016 21:41:14 +0100 Subject: [PATCH] normalize the handling of speed traces in CpuTi --- src/surf/cpu_ti.cpp | 33 ++++++++++++++++++--------------- src/surf/cpu_ti.hpp | 2 ++ src/surf/surfxml_private.h | 4 +++- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index 63701e261a..2f10bfc15b 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -499,21 +499,7 @@ void CpuTiModel::addTraces() xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - XBT_DEBUG("Add speed trace: %s to CPU(%s)", trace_name, elm); - if (cpu->p_availTrace) - delete cpu->p_availTrace; - - cpu->p_availTrace = new CpuTiTgmr(trace, cpu->m_speedScale); - - /* add a fake trace event if periodicity == 0 */ - if (trace && xbt_dynar_length(trace->s_list.event_list) > 1) { - s_tmgr_event_t val; - xbt_dynar_get_cpy(trace->s_list.event_list, - xbt_dynar_length(trace->s_list.event_list) - 1, &val); - if (val.delta == 0) { - cpu->set_speed_trace(tmgr_empty_trace_new()); - } - } + cpu->set_speed_trace(trace); } } @@ -557,6 +543,23 @@ CpuTi::~CpuTi() delete p_availTrace; delete p_actionSet; } +void CpuTi::set_speed_trace(tmgr_trace_t trace) +{ + if (p_availTrace) + delete p_availTrace; + + p_availTrace = new CpuTiTgmr(trace, m_speedScale); + + /* add a fake trace event if periodicity == 0 */ + if (trace && xbt_dynar_length(trace->s_list.event_list) > 1) { + s_tmgr_event_t val; + xbt_dynar_get_cpy(trace->s_list.event_list, + xbt_dynar_length(trace->s_list.event_list) - 1, &val); + if (val.delta == 0) { + p_speedEvent = future_evt_set->add_trace(tmgr_empty_trace_new(), 0.0, this); + } + } +} void CpuTi::updateState(tmgr_trace_iterator_t event_type, double value, double date) diff --git a/src/surf/cpu_ti.hpp b/src/surf/cpu_ti.hpp index 9c46c462a6..a9820c4f16 100644 --- a/src/surf/cpu_ti.hpp +++ b/src/surf/cpu_ti.hpp @@ -118,6 +118,8 @@ public: int initiallyOn, tmgr_trace_t stateTrace) ; ~CpuTi(); + void set_speed_trace(tmgr_trace_t trace); + void updateState(tmgr_trace_iterator_t event_type, double value, double date) override; void updateActionsFinishTime(double now); bool isUsed() override; diff --git a/src/surf/surfxml_private.h b/src/surf/surfxml_private.h index 43a6c59d4e..dc69ca1e12 100644 --- a/src/surf/surfxml_private.h +++ b/src/surf/surfxml_private.h @@ -8,8 +8,10 @@ #include "surf/surfxml_parse.h" -void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect); +SG_BEGIN_DECL() +void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect); +SG_END_DECL() #endif /* SRC_SURF_SURFXML_PRIVATE_H_ */ -- 2.20.1