X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/685c03b7bc7bbc0d98ad42ecf48eff00ca702976..8d777265e12b0b9c5f13fecfc719474cdd214e9e:/src/surf/cpu_interface.cpp diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 302d3935e6..5b31783685 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -31,11 +31,7 @@ Cpu *getActionCpu(CpuAction *action) { action->getVariable(), 0))); } -simgrid::surf::signal cpuActionStateChangedCallbacks; - -void cpu_add_traces(){ - surf_cpu_model_pm->addTraces(); -} +simgrid::xbt::signal cpuActionStateChangedCallbacks; /********* * Model * @@ -131,31 +127,25 @@ void CpuModel::updateActionsStateFull(double now, double delta) /************ * Resource * ************/ -Cpu::Cpu() -{ - xbt_die("FIXME: DEADCODE"); -} - - -Cpu::Cpu(Model *model, simgrid::Host *host, +Cpu::Cpu(Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, int pstate, int core, double speedPeak, double speedScale, - e_surf_resource_state_t stateInitial) - : Cpu(model, host, NULL/*constraint*/, speedPeakList, pstate, core, speedPeak, speedScale, stateInitial) + int initiallyOn) + : Cpu(model, host, NULL/*constraint*/, speedPeakList, pstate, core, speedPeak, speedScale, initiallyOn) { } -Cpu::Cpu(Model *model, simgrid::Host *host, lmm_constraint_t constraint, +Cpu::Cpu(Model *model, simgrid::s4u::Host *host, lmm_constraint_t constraint, xbt_dynar_t speedPeakList, int pstate, int core, double speedPeak, - double speedScale, e_surf_resource_state_t stateInitial) - : Resource(model, host->getName().c_str(), constraint, stateInitial) + double speedScale, int initiallyOn) + : Resource(model, host->name().c_str(), constraint, initiallyOn) , m_core(core) , m_speedPeak(speedPeak) , m_speedScale(speedScale) , m_host(host) { - host->p_cpu = this; + host->pimpl_cpu = this; xbt_assert(m_speedScale > 0, "Available speed has to be >0"); // Copy the power peak array: @@ -179,26 +169,12 @@ Cpu::Cpu(Model *model, simgrid::Host *host, lmm_constraint_t constraint, int i; for (i = 0; i < core; i++) { /* just for a unique id, never used as a string. */ - p_constraintCoreId[i] = bprintf("%s:%i", host->getName().c_str(), i); + p_constraintCoreId[i] = bprintf("%s:%i", host->name().c_str(), i); p_constraintCore[i] = lmm_constraint_new(model->getMaxminSystem(), p_constraintCoreId[i], m_speedScale * m_speedPeak); } } } -Cpu::Cpu(Model *model, simgrid::Host *host, lmm_constraint_t constraint, - xbt_dynar_t speedPeakList, int pstate, - int core, double speedPeak, double speedScale) -: Cpu(model, host, constraint, speedPeakList, pstate, core, speedPeak, speedScale, SURF_RESOURCE_ON) -{ - xbt_die("FIXME: DEADCODE"); -} - -Cpu::Cpu(Model *model, simgrid::Host *host, - xbt_dynar_t speedPeakList, int pstate, - int core, double speedPeak, double speedScale) -: Cpu(model, host, speedPeakList, pstate, core, speedPeak, speedScale, SURF_RESOURCE_ON) -{} - Cpu::~Cpu() { if (p_constraintCoreId){ @@ -230,6 +206,8 @@ void Cpu::setPState(int pstate_index) double new_peak_speed = xbt_dynar_get_as(plist, pstate_index, double); m_pstate = pstate_index; m_speedPeak = new_peak_speed; + + onSpeedChange(); } int Cpu::getPState() @@ -256,6 +234,12 @@ double Cpu::getAvailableSpeed() return m_speedScale; } +void Cpu::onSpeedChange() { + TRACE_surf_host_set_speed(surf_get_clock(), getName(), + m_core * m_speedScale * m_speedPeak); +} + + int Cpu::getCore() { return m_core; @@ -361,12 +345,12 @@ void CpuAction::setAffinity(Cpu *cpu, unsigned long mask) XBT_OUT(); } -simgrid::surf::signal CpuAction::onStateChange; +simgrid::xbt::signal CpuAction::onStateChange; void CpuAction::setState(e_surf_action_state_t state){ - e_surf_action_state_t old = getState(); + e_surf_action_state_t previous = getState(); Action::setState(state); - onStateChange(this, old, state); + onStateChange(this, previous); } }