XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_surf, instr, "Tracing Surf");
-static xbt_dict_t resource_variables; /* (host|link)#variable -> value */
-
-/* to trace gtnets */
-static xbt_dict_t gtnets_src; /* %p (action) -> %s */
-static xbt_dict_t gtnets_dst; /* %p (action) -> %s */
-
void TRACE_surf_alloc(void)
{
- resource_variables = xbt_dict_new();
- gtnets_src = xbt_dict_new();
- gtnets_dst = xbt_dict_new();
-
TRACE_surf_resource_utilization_alloc();
}
const char *resource,
double value)
{
- char aux[100], key[100];
- char *last_value = NULL;
- if (!TRACE_is_active())
- return;
- snprintf(aux, 100, "%f", value);
- snprintf(key, 100, "%s#%s", resource, variable);
-
- last_value = xbt_dict_get_or_null(resource_variables, key);
- if (last_value) {
- if (atof(last_value) == value) {
- return;
- }
- }
- pajeSetVariable(date, variable, resource, aux);
- xbt_dict_set(resource_variables, xbt_strdup(key), xbt_strdup(aux),
- xbt_free);
+ char value_str[INSTR_DEFAULT_STR_SIZE];
+ snprintf(value_str, 100, "%f", value);
+ char *variable_type = instr_variable_type(variable, resource);
+ pajeSetVariable(date, variable, variable_type, value_str);
}
-void TRACE_surf_host_set_power(double date, const char *resource,
- double power)
+void TRACE_surf_host_set_power(double date, const char *resource, double power)
{
if (!TRACE_is_active())
return;
- TRACE_surf_set_resource_variable(date, "power", resource, power);
+
+ char *variable_type = instr_variable_type("power", resource);
+ TRACE_surf_set_resource_variable(date, variable_type, resource, power);
}
-void TRACE_surf_link_set_bandwidth(double date, void *link,
- double bandwidth)
+void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth)
{
if (!TRACE_is_active())
return;
- 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);
+ char *variable_type = instr_variable_type("bandwidth", resource);
+ TRACE_surf_set_resource_variable(date, variable_type, resource, bandwidth);
}
-void TRACE_surf_link_set_latency(double date, void *link, double latency)
+//FIXME: this function is not used (latency availability traces support exists in surf network models?)
+void TRACE_surf_link_set_latency(double date, const char *resource, double latency)
{
if (!TRACE_is_active())
return;
- 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);
+ char *variable_type = instr_variable_type("latency", resource);
+ TRACE_surf_set_resource_variable(date, variable_type, resource, latency);
}
/* to trace gtnets */
void TRACE_surf_gtnets_communicate(void *action, int src, int dst)
{
- char key[100], aux[100];
- if (!TRACE_is_active())
- return;
- snprintf(key, 100, "%p", action);
-
- snprintf(aux, 100, "%d", src);
- xbt_dict_set(gtnets_src, key, xbt_strdup(aux), xbt_free);
- snprintf(aux, 100, "%d", dst);
- xbt_dict_set(gtnets_dst, key, xbt_strdup(aux), xbt_free);
}
int TRACE_surf_gtnets_get_src(void *action)
{
- char key[100];
- char *aux = NULL;
- if (!TRACE_is_active())
- return -1;
- snprintf(key, 100, "%p", action);
-
- aux = xbt_dict_get_or_null(gtnets_src, key);
- if (aux) {
- return atoi(aux);
- } else {
- return -1;
- }
+ return -1;
}
int TRACE_surf_gtnets_get_dst(void *action)
{
- char key[100];
- char *aux = NULL;
- if (!TRACE_is_active())
- return -1;
- snprintf(key, 100, "%p", action);
-
- aux = xbt_dict_get_or_null(gtnets_dst, key);
- if (aux) {
- return atoi(aux);
- } else {
- return -1;
- }
+ return -1;
}
void TRACE_surf_gtnets_destroy(void *action)
{
- char key[100];
- if (!TRACE_is_active())
- return;
- snprintf(key, 100, "%p", action);
- xbt_dict_remove(gtnets_src, key);
- xbt_dict_remove(gtnets_dst, key);
}
void TRACE_surf_action(surf_action_t surf_action, const char *category)