X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e8353121ed52ca33c1788d0aef412fcd5c0db125..c773c39f8623155553cfba2919317250e003adb4:/src/surf/cpu_ti.cpp?ds=sidebyside diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index bbc2ffa0be..d1d7d749b7 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -61,19 +61,18 @@ CpuTiTmgr::~CpuTiTmgr() */ double CpuTiTmgr::integrate(double a, double b) { - int a_index; - if ((a < 0.0) || (a > b)) { xbt_die("Error, invalid integration interval [%.2f,%.2f]. " "You probably have a task executing with negative computation amount. Check your code.", a, b); } - if (fabs(a -b) < EPSILON) + if (fabs(a - b) < EPSILON) return 0.0; if (type_ == Type::FIXED) { - return ((b - a) * value_); + return (b - a) * value_; } + int a_index; if (fabs(ceil(a / last_time_) - a / last_time_) < EPSILON) a_index = 1 + static_cast(ceil(a / last_time_)); else @@ -305,7 +304,7 @@ void CpuTiModel::create_pm_vm_models() CpuTiModel::CpuTiModel() : CpuModel(Model::UpdateAlgo::FULL) { - all_existing_models->push_back(this); + all_existing_models.push_back(this); } CpuTiModel::~CpuTiModel() @@ -377,29 +376,24 @@ void CpuTi::set_speed_trace(tmgr_trace_t trace) if (trace && trace->event_list.size() > 1) { trace_mgr::DatedValue val = trace->event_list.back(); if (val.date_ < 1e-12) - speed_.event = future_evt_set->add_trace(new simgrid::trace_mgr::trace(), this); + speed_.event = future_evt_set.add_trace(new simgrid::trace_mgr::trace(), this); } } void CpuTi::apply_event(tmgr_trace_event_t event, double value) { if (event == speed_.event) { - XBT_DEBUG("Finish trace date: value %f", value); + XBT_DEBUG("Speed changed in trace! New fixed value: %f", value); + /* update remaining of actions and put in modified cpu list */ update_remaining_amount(surf_get_clock()); set_modified(true); - tmgr_trace_t speedTrace = speed_integrated_trace_->speed_trace_; - trace_mgr::DatedValue val = speedTrace->event_list.back(); delete speed_integrated_trace_; - speed_.scale = val.value_; - - CpuTiTmgr* trace = new CpuTiTmgr(CpuTiTmgr::Type::FIXED, val.value_); - XBT_DEBUG("value %f", val.value_); - - speed_integrated_trace_ = trace; + speed_integrated_trace_ = new CpuTiTmgr(value); + speed_.scale = value; tmgr_trace_event_unref(&speed_.event); } else if (event == state_event_) { @@ -503,8 +497,7 @@ double CpuTi::get_speed_ratio() /** @brief Update the remaining amount of actions */ void CpuTi::update_remaining_amount(double now) { - - /* already updated */ + /* already up to date */ if (last_update_ >= now) return;