From: Lucas Schnorr Date: Mon, 11 Apr 2011 21:03:59 +0000 (+0200) Subject: new tracing/buffer configuration option, default to 0 X-Git-Tag: v3.6_beta2~57^2~2 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/43e10dd7865719e83a78330dfbfc4541b2ccdb47?hp=54b53a2df8af5c0502e342a8455cb75d03518d73 new tracing/buffer configuration option, default to 0 details: - it indicates if a buffer should be used to keep trace events in temporal order - defaults to NO because keeping the buffer makes the simulation slow --- diff --git a/src/instr/instr_config.c b/src/instr/instr_config.c index df4b40262a..2ca1451707 100644 --- a/src/instr/instr_config.c +++ b/src/instr/instr_config.c @@ -21,6 +21,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_config, instr, "Configuration"); #define OPT_TRACING_MSG_PROCESS "tracing/msg/process" #define OPT_TRACING_MSG_VOLUME "tracing/msg/volume" #define OPT_TRACING_FILENAME "tracing/filename" +#define OPT_TRACING_BUFFER "tracing/buffer" #define OPT_TRIVA_UNCAT_CONF "triva/uncategorized" #define OPT_TRIVA_CAT_CONF "triva/categorized" @@ -151,6 +152,12 @@ int TRACE_msg_volume_is_enabled(void) TRACE_is_enabled(); } +int TRACE_buffer (void) +{ + return xbt_cfg_get_int(_surf_cfg_set, OPT_TRACING_BUFFER) && + TRACE_is_enabled(); +} + char *TRACE_get_filename(void) { return xbt_cfg_get_string(_surf_cfg_set, OPT_TRACING_FILENAME); @@ -232,6 +239,13 @@ void TRACE_global_init(int *argc, char **argv) xbt_cfgelm_int, &default_tracing_msg_volume, 0, 1, NULL, NULL); + /* msg volume (experimental) */ + int default_buffer = 0; + xbt_cfg_register(&_surf_cfg_set, OPT_TRACING_BUFFER, + "Buffer trace events to put them in temporal order.", + xbt_cfgelm_int, &default_buffer, 0, 1, + NULL, NULL); + /* Triva graph configuration for uncategorized tracing */ char *default_triva_uncat_conf_file = xbt_strdup (""); xbt_cfg_register(&_surf_cfg_set, OPT_TRIVA_UNCAT_CONF, @@ -309,6 +323,13 @@ void TRACE_help (int detailed) " This experimental option only has effect if this simulator is MSG-based.\n" " It traces the communication volume of MSG send/receive.", detailed); + print_line (OPT_TRACING_BUFFER, "Buffer events to put them in temporal order", + " This option put some events in a time-ordered buffer using the insertion\n" + " sort algorithm. The process of acquiring and releasing locks to access this\n" + " buffer and the cost of the sorting algorithm make this process slow. The\n" + " simulator performance can be severely impacted if this option is activated,\n" + " but you are sure to get a trace file with events sorted.", + detailed); print_line (OPT_TRIVA_UNCAT_CONF, "Generate graph configuration for Triva", " This option can be used in all types of simulators build with SimGrid\n" " to generate a uncategorized resource utilization graph to be used as\n" diff --git a/src/instr/instr_paje_trace.c b/src/instr/instr_paje_trace.c index d2c4026885..4d4f7baa9e 100644 --- a/src/instr/instr_paje_trace.c +++ b/src/instr/instr_paje_trace.c @@ -331,6 +331,11 @@ void TRACE_paje_create_header(void) /* internal do the instrumentation module */ static void insert_into_buffer (paje_event_t tbi) { + if (TRACE_buffer() == 0){ + tbi->print (tbi); + tbi->free (tbi); + return; + } XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%ld)", __FUNCTION__, tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer)); unsigned int i; diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index 4cb96590ad..4a7a725d0b 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -170,6 +170,7 @@ int TRACE_uncategorized (void); int TRACE_msg_task_is_enabled(void); int TRACE_msg_process_is_enabled(void); int TRACE_msg_volume_is_enabled(void); +int TRACE_buffer (void); char *TRACE_get_filename(void); char *TRACE_get_triva_uncat_conf (void); char *TRACE_get_triva_cat_conf (void);