X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7d28d93b90eedd2a49da8b9b990296669e46d05c..cee8b7d98f1c3b6738ad5f0b20de7bed9ba08d5a:/src/instr/instr_config.cpp diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index cf95509dcd..688ff68efe 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -1,14 +1,14 @@ -/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "include/xbt/config.hpp" -#include "simgrid/Exception.hpp" -#include "simgrid/s4u/Engine.hpp" -#include "simgrid/version.h" +#include +#include + #include "src/instr/instr_private.hpp" -#include "surf/surf.hpp" +#include "xbt/config.hpp" +#include "xbt/xbt_os_time.h" #include #ifdef WIN32 @@ -24,7 +24,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_config, instr, "Configuration"); std::ofstream tracing_file; std::map tracing_files; // TI specific -double prefix = 0.0; // TI specific constexpr char OPT_TRACING_BASIC[] = "tracing/basic"; constexpr char OPT_TRACING_COMMENT_FILE[] = "tracing/comment-file"; @@ -37,7 +36,7 @@ static simgrid::config::Flag trace_enabled{ "tracing", "Enable the tracing system. You have to enable this option to use other tracing options.", false}; static simgrid::config::Flag trace_actor_enabled{ - "tracing/msg/process", // FIXME rename this flag + "tracing/actor", "Trace the behavior of all categorized actors, grouping them by host. " "Can be used to track actor location if the simulator does actor migration.", false}; @@ -72,8 +71,8 @@ static simgrid::config::Flag trace_uncategorized{ "To use if the simulator does not use tracing categories but resource utilization have to be traced.", false}; -static simgrid::config::Flag trace_disable_destroy{ - OPT_TRACING_DISABLE_DESTROY, {"tracing/disable_destroy"}, "Disable platform containers destruction.", false}; +static simgrid::config::Flag trace_disable_destroy{OPT_TRACING_DISABLE_DESTROY, + "Disable platform containers destruction.", false}; static simgrid::config::Flag trace_basic{OPT_TRACING_BASIC, "Avoid extended events (impoverished trace file).", false}; @@ -227,14 +226,14 @@ xbt::signal EntityValue::on_creation; static void on_container_creation_paje(const Container& c) { - double timestamp = SIMIX_get_clock(); + double timestamp = simgrid_get_clock(); std::stringstream stream; XBT_DEBUG("%s: event_type=%u, timestamp=%f", __func__, static_cast(PajeEventType::CreateContainer), timestamp); stream << std::fixed << std::setprecision(trace_precision) << PajeEventType::CreateContainer << " "; - stream << timestamp << " " << c.get_id() << " " << c.type_->get_id() << " " << c.father_->get_id() << " \""; + stream << timestamp << " " << c.get_id() << " " << c.get_type()->get_id() << " " << c.get_parent()->get_id() << " \""; if (c.get_name().find("rank-") != 0) stream << c.get_name() << "\""; else @@ -250,13 +249,13 @@ static void on_container_destruction_paje(const Container& c) // trace my destruction, but not if user requests so or if the container is root if (not trace_disable_destroy && &c != Container::get_root()) { std::stringstream stream; - double timestamp = SIMIX_get_clock(); + double timestamp = simgrid_get_clock(); XBT_DEBUG("%s: event_type=%u, timestamp=%f", __func__, static_cast(PajeEventType::DestroyContainer), timestamp); stream << std::fixed << std::setprecision(trace_precision) << PajeEventType::DestroyContainer << " "; - stream << timestamp << " " << c.type_->get_id() << " " << c.get_id(); + stream << timestamp << " " << c.get_type()->get_id() << " " << c.get_id(); XBT_DEBUG("Dump %s", stream.str().c_str()); tracing_file << stream.str() << std::endl; } @@ -265,9 +264,10 @@ static void on_container_destruction_paje(const Container& c) static void on_container_creation_ti(const Container& c) { XBT_DEBUG("%s: event_type=%u, timestamp=%f", __func__, static_cast(PajeEventType::CreateContainer), - SIMIX_get_clock()); + simgrid_get_clock()); // if we are in the mode with only one file static std::ofstream* ti_unique_file = nullptr; + static double prefix = 0.0; if (tracing_files.empty()) { // generate unique run id with time @@ -305,7 +305,7 @@ static void on_entity_value_creation(const EntityValue& value) std::stringstream stream; XBT_DEBUG("%s: event_type=%u", __func__, static_cast(PajeEventType::DefineEntityValue)); stream << std::fixed << std::setprecision(trace_precision) << PajeEventType::DefineEntityValue; - stream << " " << value.get_id() << " " << value.get_father()->get_id() << " " << value.get_name(); + stream << " " << value.get_id() << " " << value.get_parent()->get_id() << " " << value.get_name(); if (not value.get_color().empty()) stream << " \"" << value.get_color() << "\""; XBT_DEBUG("Dump %s", stream.str().c_str()); @@ -341,7 +341,7 @@ static void on_type_creation(const Type& type, PajeEventType event_type) std::stringstream stream; stream << std::fixed << std::setprecision(trace_precision); XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, static_cast(event_type), trace_precision, 0.); - stream << event_type << " " << type.get_id() << " " << type.get_father()->get_id() << " " << type.get_name(); + stream << event_type << " " << type.get_id() << " " << type.get_parent()->get_id() << " " << type.get_name(); if (type.is_colored()) stream << " \"" << type.get_color() << "\""; XBT_DEBUG("Dump %s", stream.str().c_str()); @@ -353,7 +353,7 @@ static void on_link_type_creation(const Type& type, const Type& source, const Ty std::stringstream stream; XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, static_cast(PajeEventType::DefineLinkType), trace_precision, 0.); - stream << PajeEventType::DefineLinkType << " " << type.get_id() << " " << type.get_father()->get_id(); + stream << PajeEventType::DefineLinkType << " " << type.get_id() << " " << type.get_parent()->get_id(); stream << " " << source.get_id() << " " << dest.get_id() << " " << type.get_name(); XBT_DEBUG("Dump %s", stream.str().c_str()); tracing_file << stream.str() << std::endl; @@ -384,13 +384,13 @@ static void on_simulation_start() XBT_DEBUG("Filename %s is open for writing", filename.c_str()); if (format == "Paje") { - Container::on_creation.connect(on_container_creation_paje); - Container::on_destruction.connect(on_container_destruction_paje); - EntityValue::on_creation.connect(on_entity_value_creation); - Type::on_creation.connect(on_type_creation); - LinkType::on_creation.connect(on_link_type_creation); - PajeEvent::on_creation.connect(on_event_creation); - PajeEvent::on_destruction.connect(on_event_destruction); + Container::on_creation_cb(on_container_creation_paje); + Container::on_destruction_cb(on_container_destruction_paje); + EntityValue::on_creation_cb(on_entity_value_creation); + Type::on_creation_cb(on_type_creation); + LinkType::on_creation_cb(on_link_type_creation); + PajeEvent::on_creation_cb(on_event_creation); + PajeEvent::on_destruction_cb(on_event_destruction); paje::dump_generator_version(); @@ -404,9 +404,9 @@ static void on_simulation_start() paje::dump_header(trace_basic, TRACE_display_sizes()); } else { trace_format = TraceFormat::Ti; - Container::on_creation.connect(on_container_creation_ti); - Container::on_destruction.connect(on_container_destruction_ti); - StateEvent::on_destruction.connect(on_state_event_destruction); + Container::on_creation_cb(on_container_creation_ti); + Container::on_destruction_cb(on_container_destruction_ti); + StateEvent::on_destruction_cb(on_state_event_destruction); } trace_active = true; @@ -419,10 +419,10 @@ static void on_simulation_end() return; /* dump trace buffer */ - last_timestamp_to_dump = surf_get_clock(); + last_timestamp_to_dump = simgrid_get_clock(); dump_buffer(true); - const Type* root_type = Container::get_root()->type_; + const Type* root_type = Container::get_root()->get_type(); /* destroy all data structures of tracing (and free) */ delete Container::get_root(); delete root_type; @@ -455,21 +455,19 @@ void init() config::declare_flag(OPT_TRACING_FORMAT_TI_ONEFILE, "(smpi only) For replay format only : output to one file only", false); - config::alias(OPT_TRACING_FORMAT_TI_ONEFILE, {"tracing/smpi/format/ti_one_file"}); config::declare_flag("tracing/comment", "Add a comment line to the top of the trace file.", ""); config::declare_flag(OPT_TRACING_COMMENT_FILE, "Add the contents of a file as comments to the top of the trace.", ""); - config::alias(OPT_TRACING_COMMENT_FILE, {"tracing/comment_file"}); config::declare_flag("tracing/precision", "Numerical precision used when timestamping events " "(expressed in number of digits after decimal point)", 6); /* Connect Engine callbacks */ - s4u::Engine::on_platform_creation.connect(on_simulation_start); - s4u::Engine::on_time_advance.connect([](double /*time_delta*/) { dump_buffer(false); }); - s4u::Engine::on_deadlock.connect(on_simulation_end); - s4u::Engine::on_simulation_end.connect(on_simulation_end); + s4u::Engine::on_platform_creation_cb(on_simulation_start); + s4u::Engine::on_time_advance_cb([](double /*time_delta*/) { dump_buffer(false); }); + s4u::Engine::on_deadlock_cb(on_simulation_end); + s4u::Engine::on_simulation_end_cb(on_simulation_end); } } // namespace instr } // namespace simgrid