#ifdef HAVE_TRACING
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_resource, instr, "tracing (un)-categorized resource utilization");
+
//to check if variables were previously set to 0, otherwise paje won't simulate them
static xbt_dict_t platform_variables; /* host or link name -> array of categories */
xbt_dynar_t array = xbt_dynar_new(sizeof(char *), xbt_free);
char *var_cpy = xbt_strdup(variable);
xbt_dynar_push(array, &var_cpy);
- if (IS_TRACING_PLATFORM)
- pajeSetVariable(now, variable, resource, "0");
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeSetVariable (now, container, type, 0);
xbt_dict_set(platform_variables, resource, array,
xbt_dynar_free_voidp);
} else {
if (flag == 0) {
char *var_cpy = xbt_strdup(variable);
xbt_dynar_push(array, &var_cpy);
- if (IS_TRACING_PLATFORM)
- pajeSetVariable(now, variable, resource, "0");
+ if (TRACE_categorized ()){
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeSetVariable (now, container, type, 0);
+ }
}
}
/* end of check */
const char *variable, const char *resource,
double value)
{
- if (!IS_TRACING_PLATFORM)
- return;
-
char valuestr[100];
snprintf(valuestr, 100, "%f", value);
__TRACE_surf_check_variable_set_to_zero(now, variable, resource);
- pajeAddVariable(now, variable, resource, valuestr);
- pajeSubVariable(now + delta, variable, resource, valuestr);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeAddVariable(now, container, type, value);
+ new_pajeSubVariable(now + delta, container, type, value);
}
static void __TRACE_A_end(smx_action_t action)
static void __TRACE_B_release(void)
{
- if (!IS_TRACING_PLATFORM)
- return;
-
char *key, *time;
xbt_dict_cursor_t cursor = NULL;
xbt_dict_foreach(method_b_dict, cursor, key, time) {
char key_value[INSTR_DEFAULT_STR_SIZE];
snprintf (key_value, INSTR_DEFAULT_STR_SIZE, "%s %s value", resource, variable);
char *value = xbt_dict_get_or_null (method_b_dict, key_value);
- pajeSubVariable(atof(time), variable, resource, value);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeSubVariable(atof(time), container, type, atof(value));
}
}
xbt_dict_free(&method_b_dict);
const char *variable, const char *resource,
double value)
{
- if (!IS_TRACING_PLATFORM)
- return;
-
char key_time[INSTR_DEFAULT_STR_SIZE];
char key_value[INSTR_DEFAULT_STR_SIZE];
char nowstr[INSTR_DEFAULT_STR_SIZE];
char *lastvaluestr = xbt_dict_get_or_null(method_b_dict, key_value);
if (lasttimestr == NULL){
__TRACE_surf_check_variable_set_to_zero(now, variable, resource);
- pajeAddVariable(now, variable, resource, valuestr);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeAddVariable(now, container, type, value);
xbt_dict_set(method_b_dict, key_time, xbt_strdup(nowdeltastr), xbt_free);
xbt_dict_set(method_b_dict, key_value, xbt_strdup(valuestr), xbt_free);
}else{
//perfect, just go on
}else{
//time changed, have to update
- pajeSubVariable(lasttime, variable, resource, lastvaluestr);
- pajeAddVariable(now, variable, resource, valuestr);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeSubVariable(lasttime, container, type, lastvalue);
+ new_pajeAddVariable(now, container, type, value);
}
}else{
//value changed, have to update
- pajeSubVariable(lasttime, variable, resource, lastvaluestr);
- pajeAddVariable(now, variable, resource, valuestr);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ new_pajeSubVariable(lasttime, container, type, lastvalue);
+ new_pajeAddVariable(now, container, type, value);
}
xbt_dict_set(method_b_dict, key_time, xbt_strdup(nowdeltastr), xbt_free);
xbt_dict_set(method_b_dict, key_value, xbt_strdup(valuestr), xbt_free);
continue;
__TRACE_surf_check_variable_set_to_zero(start_time, variable,
resource);
- char value_str[100];
if (end_time - start_time != 0) {
- snprintf(value_str, 100, "%f",
- atof(action_dict_value) / (end_time - start_time));
- pajeAddVariable(start_time, variable, resource, value_str);
- pajeSubVariable(end_time, variable, resource, value_str);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType (variable, NULL, container->type);
+ double val = atof(action_dict_value) / (end_time - start_time);
+ new_pajeSubVariable(start_time, container, type, val);
+ new_pajeAddVariable(end_time, container, type, val);
}
}
xbt_dict_remove(method_c_dict, key);
/*
* TRACE_surf_link_set_utilization: entry point from SimGrid
*/
-void TRACE_surf_link_set_utilization(void *link, smx_action_t smx_action,
+void TRACE_surf_link_set_utilization(const char *resource, smx_action_t smx_action,
surf_action_t surf_action,
double value, double now,
double delta)
if (!value)
return;
//only trace link utilization if link is known by tracing mechanism
- if (!TRACE_surf_link_is_traced(link))
+ if (!getContainerByName(resource))
return;
if (!value)
return;
- char resource[100];
- snprintf(resource, 100, "%p", link);
-
//trace uncategorized link utilization
if (TRACE_uncategorized()){
- TRACE_surf_resource_utilization_event(smx_action, now, delta,
- "bandwidth_used", resource, value);
+ DEBUG4("UNCAT LINK [%f - %f] %s bandwidth_used %f", now, now+delta, resource, value);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType("bandwidth_used", NULL, container->type);
+ TRACE_surf_resource_utilization_event(smx_action, now, delta, type->name, container->name, value);
}
//trace categorized utilization
- if (!IS_TRACED(surf_action))
- return;
- char type[100];
- snprintf(type, 100, "b%s", surf_action->category);
- TRACE_surf_resource_utilization_event(smx_action, now, delta, type,
- resource, value);
+ if (TRACE_categorized()){
+ if (!surf_action->category)
+ return;
+ DEBUG5("CAT LINK [%f - %f] %s %s %f", now, now+delta, resource, surf_action->category, value);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType(surf_action->category, NULL, container->type);
+ TRACE_surf_resource_utilization_event(smx_action, now, delta, type->name, container->name, value);
+ }
return;
}
/*
* TRACE_surf_host_set_utilization: entry point from SimGrid
*/
-void TRACE_surf_host_set_utilization(const char *name,
+void TRACE_surf_host_set_utilization(const char *resource,
smx_action_t smx_action,
surf_action_t surf_action,
double value, double now,
//trace uncategorized host utilization
if (TRACE_uncategorized()){
- TRACE_surf_resource_utilization_event(smx_action, now, delta,
- "power_used", name, value);
+ DEBUG4("UNCAT HOST [%f - %f] %s power_used %f", now, now+delta, resource, value);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType("power_used", NULL, container->type);
+ TRACE_surf_resource_utilization_event(smx_action, now, delta, type->name, container->name, value);
}
//trace categorized utilization
- if (!IS_TRACED(surf_action))
- return;
- char type[100];
- snprintf(type, 100, "p%s", surf_action->category);
- TRACE_surf_resource_utilization_event(smx_action, now, delta, type, name,
- value);
+ if (TRACE_categorized()){
+ if (!surf_action->category)
+ return;
+ DEBUG5("CAT HOST [%f - %f] %s %s %f", now, now+delta, resource, surf_action->category, value);
+ container_t container = getContainerByName (resource);
+ type_t type = getVariableType(surf_action->category, NULL, container->type);
+ TRACE_surf_resource_utilization_event(smx_action, now, delta, type->name, container->name, value);
+ }
return;
}
{
if (!TRACE_is_active())
return;
+ DEBUG1("START %p", action);
TRACE_method_start(action);
}
{
if (!TRACE_is_active())
return;
+ DEBUG6("EVENT %p [%f - %f] %s %s %f", action, now, now+delta, resource, variable, value);
TRACE_method_event(action, now, delta, variable, resource, value);
}
if (!TRACE_is_active())
return;
TRACE_method_end(action);
+ DEBUG1("END %p", action);
}
void TRACE_surf_resource_utilization_release()