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 d05ef5f346430a98b998f9387c12c869b91f1c17..3e2dcdf836d3a05887a93ea11402ac7cf5318cea 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 0a3feac3b4d3d0ab13a7c2e09fa4025341309eac..506f41e035d47196f5fc7c6de343129d40ce2501 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 cb8cd7daa52eab2da4b9dce9e2b732fdd9bdae74..b6ae112b07cf899e58ff6c75ee4f360d1c333403 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;
   }
 }