#include "cpu_ti.hpp"
#include "maxmin_private.hpp"
#include "simgrid/sg_config.h"
-#include "src/surf/platform.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu,
"Logging specific to the SURF CPU IMPROVED module");
surf_cpu_model_vm = new simgrid::surf::CpuCas01Model();
xbt_dynar_push(all_existing_models, &surf_cpu_model_vm);
-
- simgrid::surf::on_postparse.connect([]() {
- surf_cpu_model_pm->addTraces();
- });
}
namespace simgrid {
return Model::shareResourcesMaxMin(getRunningActionSet(), p_maxminSystem, lmm_solve);
}
-void CpuCas01Model::addTraces()
-{
- xbt_dict_cursor_t cursor = NULL;
- char *trace_name, *elm;
- static int called = 0;
- if (called)
- return;
- called = 1;
-
- /* 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);
- Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
-
- xbt_assert(cpu, "Host %s undefined", elm);
- xbt_assert(trace, "Trace %s undefined", trace_name);
-
- cpu->set_speed_trace(trace);
- }
-}
-
/************
* Resource *
************/
void CpuCas01::apply_event(tmgr_trace_iterator_t event, double value)
{
- lmm_variable_t var = NULL;
- lmm_element_t elem = NULL;
-
if (event == p_speed.event) {
/* TODO (Hypervisor): do the same thing for constraint_core[i] */
xbt_assert(m_core == 1, "FIXME: add speed scaling code also for constraint_core[i]");
turnOn();
} else {
lmm_constraint_t cnst = getConstraint();
+ lmm_variable_t var = NULL;
+ lmm_element_t elem = NULL;
double date = surf_get_clock();
turnOff();
}
}
tmgr_trace_event_unref(&p_stateEvent);
+
} else {
xbt_die("Unknown event!\n");
}
-
- return;
}
CpuAction *CpuCas01::execution_start(double size)