Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
only trace link-related data if tracing mechanism know the link
authorschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 5 Oct 2010 13:16:08 +0000 (13:16 +0000)
committerschnorr <schnorr@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 5 Oct 2010 13:16:08 +0000 (13:16 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8350 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/instr/private.h
src/instr/resource_utilization.c
src/instr/surf_instr.c

index d05ef5f..3e2dcdf 100644 (file)
@@ -112,6 +112,7 @@ void TRACE_surf_link_set_latency (double date, void *link, double latency);
 void TRACE_surf_link_missing (void);
 void TRACE_msg_clean (void);
 void TRACE_surf_save_onelink (void);
+int TRACE_surf_link_is_traced (void *link);
 
 //for tracing gtnets
 void TRACE_surf_gtnets_communicate (void *action, int src, int dst);
index 0a3feac..506f41e 100644 (file)
@@ -331,6 +331,9 @@ void TRACE_surf_link_set_utilization (void *link, smx_action_t smx_action, doubl
   char type[100];
   if (!IS_TRACING || !IS_TRACED(smx_action)) return;
 
+  //only trace link utilization if link is known by tracing mechanism
+  if (!TRACE_surf_link_is_traced (link)) return;
+
   if (!value) return;
 
   char resource[100];
index cb8cd7d..b6ae112 100644 (file)
@@ -100,6 +100,8 @@ void TRACE_surf_host_set_power (double date, char *resource, double power)
 
 void TRACE_surf_link_set_bandwidth (double date, void *link, double bandwidth)
 {
+  if (!TRACE_surf_link_is_traced (link)) return;
+
   char resource[100];
   snprintf (resource, 100, "%p", link);
   __TRACE_surf_set_resource_variable (date, "bandwidth", resource, bandwidth);
@@ -107,6 +109,8 @@ void TRACE_surf_link_set_bandwidth (double date, void *link, double bandwidth)
 
 void TRACE_surf_link_set_latency (double date, void *link, double latency)
 {
+  if (!TRACE_surf_link_is_traced (link)) return;
+
   char resource[100];
   snprintf (resource, 100, "%p", link);
   __TRACE_surf_set_resource_variable (date, "latency", resource, latency);
@@ -217,11 +221,24 @@ void TRACE_surf_save_onelink (void)
     char *dst = onelink->dst;
     void *link = onelink->link_ptr;
 
-    char resource[100];
-    snprintf (resource, 100, "%p", link);
+    if (TRACE_surf_link_is_traced (link)){
+      char resource[100];
+      snprintf (resource, 100, "%p", link);
+
+      pajeNewEvent (0.1, "source", resource, src);
+      pajeNewEvent (0.1, "destination", resource, dst);
+    }
+  }
+}
 
-    pajeNewEvent (0.1, "source", resource, src);
-    pajeNewEvent (0.1, "destination", resource, dst);
+int TRACE_surf_link_is_traced (void *link)
+{
+  char alias[100];
+  snprintf (alias, 100, "%p", link);
+  if (xbt_dict_get_or_null (created_links, alias)){
+    return 1;
+  }else{
+    return 0;
   }
 }