X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/79f2c630c9587d494cb154e6d074294c1e23208e..13ba71c0aa0fbc28f20aacf03b3026117479f2ec:/src/surf/host_ptask_L07.cpp diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index cd1c12a43d..e4156e5626 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -13,8 +13,10 @@ #include "cpu_interface.hpp" #include "surf_routing.hpp" #include "xbt/lib.h" +#include "src/surf/platform.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); +XBT_LOG_EXTERNAL_CATEGORY(xbt_cfg); /**************************************/ /*** Resource Creation & Destruction **/ @@ -28,13 +30,15 @@ static void ptask_netlink_parse_init(sg_platf_link_cbarg_t link) void surf_host_model_init_ptask_L07(void) { - XBT_INFO("Switching to the L07 model to handle parallel tasks."); + XBT_CINFO(xbt_cfg,"Switching to the L07 model to handle parallel tasks."); xbt_assert(!surf_cpu_model_pm, "CPU model type already defined"); xbt_assert(!surf_network_model, "network model type already defined"); // Define the callbacks to parse the XML - sg_platf_link_add_cb(ptask_netlink_parse_init); - sg_platf_postparse_add_cb(host_add_traces); + simgrid::surf::on_link.connect(ptask_netlink_parse_init); + simgrid::surf::on_postparse.connect([](){ + surf_host_model->addTraces(); + }); surf_host_model = new simgrid::surf::HostL07Model(); xbt_dynar_push(all_existing_models, &surf_host_model); @@ -69,7 +73,8 @@ CpuL07Model::CpuL07Model(HostL07Model *hmodel,lmm_system_t sys) } CpuL07Model::~CpuL07Model() { surf_cpu_model_pm = NULL; - p_maxminSystem = NULL; // Avoid multi-free + lmm_system_free(p_maxminSystem); + p_maxminSystem = NULL; } NetworkL07Model::NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys) : NetworkModel() @@ -201,7 +206,7 @@ L07Action::L07Action(Model *model, int host_nb, this->p_netcardList->reserve(host_nb); for (int i = 0; ip_netcardList->push_back(host_list[i]->p_netcard); + this->p_netcardList->push_back(host_list[i]->pimpl_netcard); /* Compute the number of affected resources... */ for (int i = 0; i < host_nb; i++) { @@ -249,7 +254,7 @@ L07Action::L07Action(Model *model, int host_nb, for (int i = 0; i < host_nb; i++) lmm_expand(model->getMaxminSystem(), - host_list[i]->p_cpu->getConstraint(), + host_list[i]->pimpl_cpu->getConstraint(), this->getVariable(), flops_amount[i]); for (int i = 0; i < host_nb; i++) { @@ -297,7 +302,7 @@ Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst, return res; } -Cpu *CpuL07Model::createCpu(simgrid::Host *host, xbt_dynar_t powerPeakList, +Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t powerPeakList, int pstate, double power_scale, tmgr_trace_t power_trace, int core, int initiallyOn, @@ -341,7 +346,7 @@ void HostL07Model::addTraces() /* Connect traces relative to cpu */ xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuL07 *host = static_cast(sg_host_by_name(elm)->p_cpu); + CpuL07 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); xbt_assert(host, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -351,7 +356,7 @@ void HostL07Model::addTraces() 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); - CpuL07 *host = static_cast(sg_host_by_name(elm)->p_cpu); + CpuL07 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); xbt_assert(host, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -395,7 +400,7 @@ void HostL07Model::addTraces() * Resource * ************/ -CpuL07::CpuL07(CpuL07Model *model, simgrid::Host *host, +CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, int pstate, double speedScale, tmgr_trace_t speedTrace, int core, int initiallyOn, tmgr_trace_t state_trace) @@ -500,7 +505,7 @@ bool LinkL07::isUsed(){ return lmm_constraint_used(getModel()->getMaxminSystem(), getConstraint()); } -void CpuL07::updateState(tmgr_trace_event_t event_type, double value, double /*date*/){ +void CpuL07::updateState(tmgr_trace_iterator_t event_type, double value, double /*date*/){ XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value); if (event_type == p_speedEvent) { m_speedScale = value; @@ -521,7 +526,7 @@ void CpuL07::updateState(tmgr_trace_event_t event_type, double value, double /*d return; } -void LinkL07::updateState(tmgr_trace_event_t event_type, double value, double date) { +void LinkL07::updateState(tmgr_trace_iterator_t event_type, double value, double date) { XBT_DEBUG("Updating link %s (%p) with value=%f for date=%g", getName(), this, value, date); if (event_type == p_bwEvent) { updateBandwidth(value, date);