X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4580d8ca126c4e18a4b98263ab3a3da47db009f8..e292a614483e53608932312a1c68a87063ea8600:/src/surf/cpu_cas01.cpp diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index deed4fd36b..d48972e75f 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -9,8 +9,7 @@ #include "maxmin_private.hpp" #include "simgrid/sg_config.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu, - "Logging specific to the SURF CPU IMPROVED module"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu, "Logging specific to the SURF CPU IMPROVED module"); /********* * Model * @@ -82,14 +81,9 @@ CpuCas01Model::~CpuCas01Model() delete p_cpuRunningActionSetThatDoesNotNeedBeingChecked; } -Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t state_trace) +Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPerPstate, int core) { - xbt_assert(xbt_dynar_getfirst_as(speedPeak, double) > 0.0, - "Speed has to be >0.0. Did you forget to specify the mandatory power attribute?"); - xbt_assert(core > 0, "Invalid number of cores %d. Must be larger than 0", core); - Cpu *cpu = new CpuCas01(this, host, speedPeak, speedTrace, core, state_trace); - return cpu; + return new CpuCas01(this, host, speedPerPstate, core); } double CpuCas01Model::next_occuring_event_full(double /*now*/) @@ -100,31 +94,21 @@ double CpuCas01Model::next_occuring_event_full(double /*now*/) /************ * Resource * ************/ -CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak, - tmgr_trace_t speedTrace, int core, tmgr_trace_t stateTrace) +CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPerPstate, int core) : Cpu(model, host, - lmm_constraint_new(model->getMaxminSystem(), this, core * xbt_dynar_get_as(speedPeak, 0/*pstate*/, double)), - speedPeak, core, xbt_dynar_get_as(speedPeak, 0/*pstate*/, double)) + lmm_constraint_new(model->getMaxminSystem(), this, core * xbt_dynar_get_as(speedPerPstate, 0/*pstate*/, double)), + speedPerPstate, core) { - - XBT_DEBUG("CPU create: peak=%f, pstate=%d", speed_.peak, pstate_); - - coresAmount_ = core; - if (speedTrace) - speed_.event = future_evt_set->add_trace(speedTrace, 0.0, this); - - if (stateTrace) - stateEvent_ = future_evt_set->add_trace(stateTrace, 0.0, this); } CpuCas01::~CpuCas01() { if (getModel() == surf_cpu_model_pm) - xbt_dynar_free(&speedPeakList_); + xbt_dynar_free(&speedPerPstate_); } xbt_dynar_t CpuCas01::getSpeedPeakList(){ - return speedPeakList_; + return speedPerPstate_; } bool CpuCas01::isUsed() @@ -180,11 +164,11 @@ void CpuCas01::apply_event(tmgr_trace_iterator_t event, double value) while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), cnst, &elem))) { Action *action = static_cast(lmm_variable_id(var)); - if (action->getState() == SURF_ACTION_RUNNING || - action->getState() == SURF_ACTION_READY || - action->getState() == SURF_ACTION_NOT_IN_THE_SYSTEM) { + if (action->getState() == Action::State::running || + action->getState() == Action::State::ready || + action->getState() == Action::State::not_in_the_system) { action->setFinishTime(date); - action->setState(SURF_ACTION_FAILED); + action->setState(Action::State::failed); } } } @@ -215,7 +199,6 @@ CpuAction *CpuCas01::sleep(double duration) CpuCas01Action *action = new CpuCas01Action(getModel(), 1.0, isOff(), speed_.scale * speed_.peak, getConstraint()); - // FIXME: sleep variables should not consume 1.0 in lmm_expand action->m_maxDuration = duration; action->m_suspended = 2;