X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eadbe829389f23151f79257824f3164d7801bbc7..9b4ac8fd04e749d0737479e3b02074be4ad3f2ab:/src/instr/instr_platform.cpp diff --git a/src/instr/instr_platform.cpp b/src/instr/instr_platform.cpp index e2607795f8..f0dd78aa8d 100644 --- a/src/instr/instr_platform.cpp +++ b/src/instr/instr_platform.cpp @@ -247,9 +247,8 @@ static void instr_action_on_state_change(simgrid::kernel::resource::Action const for (int i = 0; i < n; i++) { double value = action.get_variable()->get_value() * action.get_variable()->get_constraint_weight(i); /* Beware of composite actions: ptasks put links and cpus together. Extra pb: we cannot dynamic_cast from void* */ - simgrid::kernel::resource::Resource* resource = - static_cast(action.get_variable()->get_constraint(i)->get_id()); - simgrid::surf::Cpu* cpu = dynamic_cast(resource); + simgrid::kernel::resource::Resource* resource = action.get_variable()->get_constraint(i)->get_id(); + simgrid::kernel::resource::Cpu* cpu = dynamic_cast(resource); if (cpu != nullptr) TRACE_surf_resource_set_utilization("HOST", "speed_used", cpu->get_cname(), action.get_category(), value, @@ -313,26 +312,21 @@ static void instr_actor_on_creation(simgrid::s4u::Actor const& actor) }); } -static long long int counter = 0; - -static void instr_actor_on_migration_start(simgrid::s4u::Actor const& actor) +static void instr_actor_on_host_change(simgrid::s4u::Actor const& actor, + simgrid::s4u::Host const& /*previous_location*/) { - // start link + static long long int counter = 0; container_t container = simgrid::instr::Container::by_name(instr_pid(actor)); - simgrid::instr::Container::get_root()->get_link("ACTOR_LINK")->start_event(container, "M", std::to_string(counter)); + simgrid::instr::LinkType* link = simgrid::instr::Container::get_root()->get_link("ACTOR_LINK"); + // start link + link->start_event(container, "M", std::to_string(counter)); // destroy existing container of this process container->remove_from_parent(); -} - -static void instr_actor_on_migration_end(simgrid::s4u::Actor const& actor) -{ // create new container on the new_host location simgrid::instr::Container::by_name(actor.get_host()->get_name())->create_child(instr_pid(actor), "ACTOR"); // end link - simgrid::instr::Container::get_root() - ->get_link("ACTOR_LINK") - ->end_event(simgrid::instr::Container::by_name(instr_pid(actor)), "M", std::to_string(counter)); + link->end_event(simgrid::instr::Container::by_name(instr_pid(actor)), "M", std::to_string(counter)); counter++; } @@ -356,7 +350,7 @@ void instr_define_callbacks() // always need the callbacks to zones (we need only the root zone), to create the rootContainer and the rootType // properly if (TRACE_needs_platform()) { - simgrid::s4u::on_platform_created.connect(instr_on_platform_created); + simgrid::s4u::Engine::on_platform_created.connect(instr_on_platform_created); simgrid::s4u::Host::on_creation.connect(instr_host_on_creation); simgrid::s4u::Host::on_speed_change.connect(instr_host_on_speed_change); simgrid::s4u::Link::on_creation.connect(instr_link_on_creation); @@ -367,7 +361,7 @@ void instr_define_callbacks() } simgrid::s4u::NetZone::on_creation.connect(instr_netzone_on_creation); - simgrid::surf::CpuAction::on_state_change.connect(instr_action_on_state_change); + simgrid::kernel::resource::CpuAction::on_state_change.connect(instr_action_on_state_change); simgrid::s4u::Link::on_communication_state_change.connect(instr_action_on_state_change); if (TRACE_actor_is_enabled()) { @@ -389,10 +383,10 @@ void instr_define_callbacks() simgrid::s4u::Actor::on_wake_up.connect([](simgrid::s4u::Actor const& actor) { simgrid::instr::Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); }); - simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Actor const& actor) { + simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Actor const& actor, simgrid::s4u::Exec const&) { simgrid::instr::Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("execute"); }); - simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::Actor const& actor) { + simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::Actor const& actor, simgrid::s4u::Exec const&) { simgrid::instr::Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); }); simgrid::s4u::Comm::on_sender_start.connect([](simgrid::s4u::Actor const& actor) { @@ -404,8 +398,7 @@ void instr_define_callbacks() simgrid::s4u::Comm::on_completion.connect([](simgrid::s4u::Actor const& actor) { simgrid::instr::Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); }); - simgrid::s4u::Actor::on_migration_start.connect(instr_actor_on_migration_start); - simgrid::s4u::Actor::on_migration_end.connect(instr_actor_on_migration_end); + simgrid::s4u::Actor::on_host_change.connect(instr_actor_on_host_change); } if (TRACE_vm_is_enabled()) { @@ -439,8 +432,8 @@ static void recursiveNewVariableType(const std::string& new_typename, const std: if (root->get_name() == "LINK") root->by_name_or_create(std::string("b") + new_typename, color); - for (auto elm : root->children_) { - recursiveNewVariableType(new_typename, color, elm.second); + for (auto const& elm : root->children_) { + recursiveNewVariableType(new_typename, color, elm.second.get()); } } @@ -455,8 +448,8 @@ static void recursiveNewUserVariableType(const std::string& father_type, const s if (root->get_name() == father_type) { root->by_name_or_create(new_typename, color); } - for (auto elm : root->children_) - recursiveNewUserVariableType(father_type, new_typename, color, elm.second); + for (auto const& elm : root->children_) + recursiveNewUserVariableType(father_type, new_typename, color, elm.second.get()); } void instr_new_user_variable_type(const std::string& father_type, const std::string& new_typename, @@ -471,8 +464,8 @@ static void recursiveNewUserStateType(const std::string& father_type, const std: if (root->get_name() == father_type) root->by_name_or_create(new_typename); - for (auto elm : root->children_) - recursiveNewUserStateType(father_type, new_typename, elm.second); + for (auto const& elm : root->children_) + recursiveNewUserStateType(father_type, new_typename, elm.second.get()); } void instr_new_user_state_type(const std::string& father_type, const std::string& new_typename) @@ -486,8 +479,8 @@ static void recursiveNewValueForUserStateType(const std::string& type_name, cons if (root->get_name() == type_name) static_cast(root)->add_entity_value(val, color); - for (auto elm : root->children_) - recursiveNewValueForUserStateType(type_name, val, color, elm.second); + for (auto const& elm : root->children_) + recursiveNewValueForUserStateType(type_name, val, color, elm.second.get()); } void instr_new_value_for_user_state_type(const std::string& type_name, const char* value, const std::string& color)