From b57d0dc822c4b229e52ecc40d8a7b75e0e2db6a1 Mon Sep 17 00:00:00 2001 From: schnorr Date: Mon, 6 Dec 2010 01:11:22 +0000 Subject: [PATCH] [trace] TRACE_[start|end] no longer belong to public functions of the tracing api details: - they are called by appropriate initialization functions if simgrid is compiled with tracing_enable=on git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9000 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- include/instr/instr.h | 4 -- src/instr/instr_config.c | 121 +++++++++++++++++++++++++++++++++++ src/instr/instr_interface.c | 122 +----------------------------------- src/instr/instr_private.h | 2 + 4 files changed, 124 insertions(+), 125 deletions(-) diff --git a/include/instr/instr.h b/include/instr/instr.h index 52b364a714..7e1734953f 100644 --- a/include/instr/instr.h +++ b/include/instr/instr.h @@ -26,8 +26,6 @@ #define TRACE_ERROR_START 500 #define TRACE_ERROR_ALREADY_ACTIVE 501 -XBT_PUBLIC(int) TRACE_start(void); -XBT_PUBLIC(int) TRACE_end(void); XBT_PUBLIC(int) TRACE_category(const char *category); XBT_PUBLIC(int) TRACE_category_with_color (const char *category, const char *color); XBT_PUBLIC(void) TRACE_define_type(const char *type, @@ -101,8 +99,6 @@ XBT_PUBLIC(void) TRACE_sd_set_task_category(SD_task_t task, #else /* HAVE_TRACING */ -#define TRACE_start() -#define TRACE_end() #define TRACE_category(cat) #define TRACE_define_type(cat,supercat,final) #define TRACE_create_category(inst,cat) diff --git a/src/instr/instr_config.c b/src/instr/instr_config.c index eebe5bca65..53b4ec8d7a 100644 --- a/src/instr/instr_config.c +++ b/src/instr/instr_config.c @@ -29,6 +29,127 @@ static int trace_configured = 0; static int trace_active = 0; extern xbt_dict_t created_categories; //declared in instr_interface.c +extern xbt_dict_t defined_types; //declared in instr_interface.c + +int TRACE_start() +{ + // tracing system must be: + // - enabled (with --cfg=tracing:1) + // - already configured (TRACE_global_init already called) + if (!(TRACE_is_enabled() && TRACE_is_configured())){ + return 0; + } + + DEBUG0("Tracing starts"); + + /* open the trace file */ + TRACE_paje_start(); + + /* activate trace */ + TRACE_activate (); + + /* base type hierarchy: + * --cfg=tracing + */ + pajeDefineContainerType("PLATFORM", "0", "platform"); + pajeDefineContainerType("HOST", "PLATFORM", "HOST"); + pajeDefineContainerType("LINK", "PLATFORM", "LINK"); + pajeDefineVariableType("power", "HOST", "power"); + pajeDefineVariableType("bandwidth", "LINK", "bandwidth"); + pajeDefineVariableType("latency", "LINK", "latency"); + pajeDefineEventType("source", "LINK", "source"); + pajeDefineEventType("destination", "LINK", "destination"); + + /* type hierarchy for: + * --cfg=tracing/uncategorized + */ + if (TRACE_uncategorized()){ + pajeDefineVariableTypeWithColor("power_used", "HOST", "power_used", "0.5 0.5 0.5"); + pajeDefineVariableTypeWithColor("bandwidth_used", "LINK", "bandwidth_used", "0.5 0.5 0.5"); + } + + /* type hierarchy for: + * --cfg=tracing/msg/process + * --cfg=tracing/msg/volume + */ + if (TRACE_msg_process_is_enabled() || TRACE_msg_volume_is_enabled()) { + //processes grouped by host + pajeDefineContainerType("PROCESS", "HOST", "PROCESS"); + } + + if (TRACE_msg_process_is_enabled()) { + pajeDefineStateType("category", "PROCESS", "category"); + pajeDefineStateType("presence", "PROCESS", "presence"); + } + + if (TRACE_msg_volume_is_enabled()) { + pajeDefineLinkType("volume", "0", "PROCESS", "PROCESS", "volume"); + } + + /* type hierarchy for: + * --cfg=tracing/msg/task + */ + if (TRACE_msg_task_is_enabled()) { + //tasks grouped by host + pajeDefineContainerType("TASK", "HOST", "TASK"); + pajeDefineStateType("category", "TASK", "category"); + pajeDefineStateType("presence", "TASK", "presence"); + } + + /* type hierarchy for + * --cfg=tracing/smpi + * --cfg=tracing/smpi/group + */ + if (TRACE_smpi_is_enabled()) { + if (TRACE_smpi_is_grouped()){ + pajeDefineContainerType("MPI_PROCESS", "HOST", "MPI_PROCESS"); + }else{ + pajeDefineContainerType("MPI_PROCESS", "PLATFORM", "MPI_PROCESS"); + } + pajeDefineStateType("MPI_STATE", "MPI_PROCESS", "MPI_STATE"); + pajeDefineLinkType("MPI_LINK", "0", "MPI_PROCESS", "MPI_PROCESS", + "MPI_LINK"); + } + + /* creating the platform */ + pajeCreateContainer(MSG_get_clock(), "platform", "PLATFORM", "0", + "simgrid-platform"); + + /* other trace initialization */ + defined_types = xbt_dict_new(); + created_categories = xbt_dict_new(); + TRACE_msg_task_alloc(); + TRACE_category_alloc(); + TRACE_surf_alloc(); + TRACE_msg_process_alloc(); + TRACE_smpi_alloc(); + return 0; +} + +int TRACE_end() +{ + if (!TRACE_is_active()) + return 1; + XBT_IN; + + /* close the trace file */ + TRACE_paje_end(); + + /* generate uncategorized graph configuration for triva */ + if (TRACE_get_triva_uncat_conf()){ + TRACE_generate_triva_uncat_conf(); + } + + /* generate categorized graph configuration for triva */ + if (TRACE_get_triva_cat_conf()){ + TRACE_generate_triva_cat_conf(); + } + + /* activate trace */ + TRACE_desactivate (); + DEBUG0("Tracing system is shutdown"); + return 0; +} void TRACE_activate (void) { diff --git a/src/instr/instr_interface.c b/src/instr/instr_interface.c index a2aad01663..ce8d58fd53 100644 --- a/src/instr/instr_interface.c +++ b/src/instr/instr_interface.c @@ -12,129 +12,9 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_api, instr, "API"); -static xbt_dict_t defined_types; +xbt_dict_t defined_types; xbt_dict_t created_categories; -int TRACE_start() -{ - // tracing system must be: - // - enabled (with --cfg=tracing:1) - // - already configured (TRACE_global_init already called) - if (!(TRACE_is_enabled() && TRACE_is_configured())){ - return 0; - } - - DEBUG0("Tracing starts"); - - /* open the trace file */ - TRACE_paje_start(); - - /* activate trace */ - TRACE_activate (); - - /* base type hierarchy: - * --cfg=tracing - */ - pajeDefineContainerType("PLATFORM", "0", "platform"); - pajeDefineContainerType("HOST", "PLATFORM", "HOST"); - pajeDefineContainerType("LINK", "PLATFORM", "LINK"); - pajeDefineVariableType("power", "HOST", "power"); - pajeDefineVariableType("bandwidth", "LINK", "bandwidth"); - pajeDefineVariableType("latency", "LINK", "latency"); - pajeDefineEventType("source", "LINK", "source"); - pajeDefineEventType("destination", "LINK", "destination"); - - /* type hierarchy for: - * --cfg=tracing/uncategorized - */ - if (TRACE_uncategorized()){ - pajeDefineVariableTypeWithColor("power_used", "HOST", "power_used", "0.5 0.5 0.5"); - pajeDefineVariableTypeWithColor("bandwidth_used", "LINK", "bandwidth_used", "0.5 0.5 0.5"); - } - - /* type hierarchy for: - * --cfg=tracing/msg/process - * --cfg=tracing/msg/volume - */ - if (TRACE_msg_process_is_enabled() || TRACE_msg_volume_is_enabled()) { - //processes grouped by host - pajeDefineContainerType("PROCESS", "HOST", "PROCESS"); - } - - if (TRACE_msg_process_is_enabled()) { - pajeDefineStateType("category", "PROCESS", "category"); - pajeDefineStateType("presence", "PROCESS", "presence"); - } - - if (TRACE_msg_volume_is_enabled()) { - pajeDefineLinkType("volume", "0", "PROCESS", "PROCESS", "volume"); - } - - /* type hierarchy for: - * --cfg=tracing/msg/task - */ - if (TRACE_msg_task_is_enabled()) { - //tasks grouped by host - pajeDefineContainerType("TASK", "HOST", "TASK"); - pajeDefineStateType("category", "TASK", "category"); - pajeDefineStateType("presence", "TASK", "presence"); - } - - /* type hierarchy for - * --cfg=tracing/smpi - * --cfg=tracing/smpi/group - */ - if (TRACE_smpi_is_enabled()) { - if (TRACE_smpi_is_grouped()){ - pajeDefineContainerType("MPI_PROCESS", "HOST", "MPI_PROCESS"); - }else{ - pajeDefineContainerType("MPI_PROCESS", "PLATFORM", "MPI_PROCESS"); - } - pajeDefineStateType("MPI_STATE", "MPI_PROCESS", "MPI_STATE"); - pajeDefineLinkType("MPI_LINK", "0", "MPI_PROCESS", "MPI_PROCESS", - "MPI_LINK"); - } - - /* creating the platform */ - pajeCreateContainer(MSG_get_clock(), "platform", "PLATFORM", "0", - "simgrid-platform"); - - /* other trace initialization */ - defined_types = xbt_dict_new(); - created_categories = xbt_dict_new(); - TRACE_msg_task_alloc(); - TRACE_category_alloc(); - TRACE_surf_alloc(); - TRACE_msg_process_alloc(); - TRACE_smpi_alloc(); - return 0; -} - -int TRACE_end() -{ - if (!TRACE_is_active()) - return 1; - XBT_IN; - - /* close the trace file */ - TRACE_paje_end(); - - /* generate uncategorized graph configuration for triva */ - if (TRACE_get_triva_uncat_conf()){ - TRACE_generate_triva_uncat_conf(); - } - - /* generate categorized graph configuration for triva */ - if (TRACE_get_triva_cat_conf()){ - TRACE_generate_triva_cat_conf(); - } - - /* activate trace */ - TRACE_desactivate (); - DEBUG0("Tracing system is shutdown"); - return 0; -} - int TRACE_category(const char *category) { return TRACE_category_with_color (category, NULL); diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index 8d64c795f7..f175add9d0 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -146,6 +146,8 @@ void TRACE_smpi_send(int rank, int src, int dst); void TRACE_smpi_recv(int rank, int src, int dst); /* from instr_config.c */ +int TRACE_start (void); +int TRACE_end (void); void TRACE_activate (void); void TRACE_desactivate (void); int TRACE_is_active (void); -- 2.20.1