return;
called = 1;
- /* connect all traces relative to hosts */
- xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) {
+ /* connect host speed traces */
+ xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- CpuCas01 *host = static_cast<CpuCas01*>(sg_host_by_name(elm)->pimpl_cpu);
+ Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
- xbt_assert(host, "Host %s undefined", elm);
+ xbt_assert(cpu, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
- host->setStateEvent(future_evt_set->add_trace(trace, 0.0, host));
- }
-
- xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) {
- tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- CpuCas01 *host = static_cast<CpuCas01*>(sg_host_by_name(elm)->pimpl_cpu);
-
- xbt_assert(host, "Host %s undefined", elm);
- xbt_assert(trace, "Trace %s undefined", trace_name);
-
- host->setPowerEvent(future_evt_set->add_trace(trace, 0.0, host));
+ cpu->set_speed_trace(trace);
}
}
speedPeak, pstate,
core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale,
initiallyOn) {
- p_speedEvent = NULL;
XBT_DEBUG("CPU create: peak=%f, pstate=%d", m_speedPeak, m_pstate);
xbt_dynar_free(&p_speedPeakList);
}
-void CpuCas01::setStateEvent(tmgr_trace_iterator_t stateEvent)
-{
- p_stateEvent = stateEvent;
-}
-
-void CpuCas01::setPowerEvent(tmgr_trace_iterator_t powerEvent)
-{
- p_speedEvent = powerEvent;
-}
-
xbt_dynar_t CpuCas01::getSpeedPeakList(){
return p_speedPeakList;
}
m_speedScale = value;
onSpeedChange();
- if (tmgr_trace_event_free(event_type))
- p_speedEvent = NULL;
+ tmgr_trace_event_unref(&p_speedEvent);
} else if (event_type == p_stateEvent) {
/* TODO (Hypervisor): do the same thing for constraint_core[i] */
xbt_assert(m_core == 1, "FIXME: add state change code also for constraint_core[i]");
}
}
}
- if (tmgr_trace_event_free(event_type))
- p_stateEvent = NULL;
+ tmgr_trace_event_unref(&p_stateEvent);
} else {
- XBT_CRITICAL("Unknown event ! \n");
- xbt_abort();
+ xbt_die("Unknown event!\n");
}
return;
}
-CpuAction *CpuCas01::execute(double size)
+CpuAction *CpuCas01::execution_start(double size)
{
XBT_IN("(%s,%g)", getName(), size);