Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill all aspects related to masks in the tracing interface
authorschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 5 Aug 2010 11:06:12 +0000 (11:06 +0000)
committerschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 5 Aug 2010 11:06:12 +0000 (11:06 +0000)
details:
- TRACE_start (filename) and TRACE_start_with_mask (filename, mask)
are replaced by TRACE_start, which takes tracing configurations
from the xbt_cfg_set, defined in the file instr_config.c
- new TRACE_start must be called after MSG_global_init, in
order to have the proper configurations defined

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8110 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/instr/instr.h
src/instr/interface.c
src/instr/private.h
src/msg/global.c

index 6314ccf..d1ef918 100644 (file)
@@ -9,12 +9,6 @@
 
 #ifdef HAVE_TRACING
 
-#define NO_TRACE               0
-#define TRACE_PLATFORM  1
-#define TRACE_PROCESS   2
-#define TRACE_TASK      4
-#define TRACE_VOLUME    8
-
 #include "xbt.h"
 #include "msg/msg.h"
 
@@ -28,8 +22,7 @@
 #define TRACE_ERROR_FILE_OPEN 401
 #define TRACE_ERROR_START 500
 
-XBT_PUBLIC(int) TRACE_start_with_mask (const char *filename, int mask);
-XBT_PUBLIC(int) TRACE_start (const char *filename);
+XBT_PUBLIC(int) TRACE_start (void);
 XBT_PUBLIC(int) TRACE_end (void);
 XBT_PUBLIC(int) TRACE_category (const char *category);
 XBT_PUBLIC(void) TRACE_define_type (const char *type, const char *parent_type, int final);
@@ -86,8 +79,7 @@ XBT_PUBLIC(void) TRACE_mark (const char *mark_type, const char *mark_value);
 
 #else /* HAVE_TRACING */
 
-#define TRACE_start(filename)
-#define TRACE_start_with_mask(filename,mask)
+#define TRACE_start()
 #define TRACE_end()
 #define TRACE_category(cat)
 #define TRACE_define_type(cat,supercat,final)
index ad1d82c..57157ce 100644 (file)
@@ -14,29 +14,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(tracing,"Tracing Interface");
 static xbt_dict_t defined_types;
 static xbt_dict_t created_categories;
 
-int trace_mask;
-
-/** \ingroup tracing
- * \brief Simple initialization of tracing.
- *
- * \param filename of the file that will contain the traces
- * \return 0 if everything is ok
- */
-int TRACE_start (const char *filename)
+int TRACE_start ()
 {
-  return TRACE_start_with_mask (filename, TRACE_PLATFORM);
-}
-
-/** \ingroup tracing
- * \brief Initialization of tracing.
- *
- * Function to be called at first when tracing a simulation
- *
- * \param name of the file that will contain the traces
- * \param mask to take into account during trace
- * \return 0 if everything is ok
- */
-int TRACE_start_with_mask(const char *filename, int mask) {
        FILE *file = NULL;
   if (IS_TRACING) { /* what? trace is already active... ignore.. */
        THROW0 (tracing_error, TRACE_ERROR_START,
@@ -44,15 +23,7 @@ int TRACE_start_with_mask(const char *filename, int mask) {
     return 0;
   }
 
-  /* checking mask */
-  if (!(mask&TRACE_PLATFORM ||
-      mask&TRACE_TASK ||
-      mask&TRACE_PROCESS ||
-      mask&TRACE_VOLUME)){
-    THROW0 (tracing_error, TRACE_ERROR_MASK,
-          "unknown tracing mask");
-  }
-
+  char *filename = _TRACE_filename ();
   file = fopen(filename, "w");
   if (!file) {
     THROW1 (tracing_error, TRACE_ERROR_START,
@@ -62,9 +33,6 @@ int TRACE_start_with_mask(const char *filename, int mask) {
   }
   TRACE_paje_create_header();
 
-  /* setting the mask */
-  trace_mask = mask;
-
   /* define paje hierarchy for tracing */
   pajeDefineContainerType("PLATFORM", "0", "platform");
   pajeDefineContainerType("HOST", "PLATFORM", "HOST");
@@ -193,15 +161,6 @@ int TRACE_create_category (const char *category,
   return 0;
 }
 
-void TRACE_set_mask (int mask)
-{
-  if (mask != TRACE_PLATFORM){
-     return;
-  }else{
-     trace_mask = mask;
-  }
-}
-
 void TRACE_declare_mark (const char *mark_type)
 {
   if (!IS_TRACING) return;
index e3455ac..89b16ee 100644 (file)
 #ifdef HAVE_TRACING
 
 extern int tracing_active; /* declared in paje.c */
-extern int trace_mask; /* declared in interface.c */
 
 #define IS_TRACING                       (tracing_active)
 #define IS_TRACED(n)          (n->category)
-#define IS_TRACING_TASKS      ((TRACE_TASK)&trace_mask)
-#define IS_TRACING_PLATFORM   ((TRACE_PLATFORM)&trace_mask)
-#define IS_TRACING_PROCESSES  ((TRACE_PROCESS)&trace_mask)
-#define IS_TRACING_VOLUME     ((TRACE_VOLUME)&trace_mask)
+#define IS_TRACING_TASKS      (_TRACE_msg_task_enabled())
+#define IS_TRACING_PLATFORM   (_TRACE_platform_enabled())
+#define IS_TRACING_PROCESSES  (_TRACE_msg_process_enabled())
+#define IS_TRACING_VOLUME     (_TRACE_msg_volume_enabled())
+#define IS_TRACING_SMPI       (_TRACE_smpi_enabled())
 
 #include "instr/instr.h"
 #include "msg/msg.h"
index 72ea2f0..7933918 100644 (file)
@@ -48,6 +48,10 @@ XBT_LOG_EXTERNAL_CATEGORY(msg_process);
  */
 void MSG_global_init(int *argc, char **argv)
 {
+#ifdef HAVE_TRACING
+  TRACE_global_init (argc, argv);
+#endif
+
   xbt_getpid = MSG_process_self_PID;
   if (!msg_global) {
     /* Connect our log channels: that must be done manually under windows */