X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2738598c9f876339ee6f8b3fc217984b7b837539..e16e02338a20ee10478d01659df54ed60dea1101:/src/instr/instr_platform.cpp diff --git a/src/instr/instr_platform.cpp b/src/instr/instr_platform.cpp index c3d88b94ec..f0dd78aa8d 100644 --- a/src/instr/instr_platform.cpp +++ b/src/instr/instr_platform.cpp @@ -247,8 +247,7 @@ 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::kernel::resource::Resource* resource = action.get_variable()->get_constraint(i)->get_id(); simgrid::kernel::resource::Cpu* cpu = dynamic_cast(resource); if (cpu != nullptr) @@ -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); @@ -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()) {