XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_surf, instr, "Tracing Surf");
-static xbt_dict_t created_links;
-static xbt_dict_t host_containers;
static xbt_dict_t resource_variables; /* (host|link)#variable -> value */
/* to trace gtnets */
void TRACE_surf_alloc(void)
{
- created_links = xbt_dict_new();
- host_containers = xbt_dict_new();
resource_variables = xbt_dict_new();
gtnets_src = xbt_dict_new();
gtnets_dst = xbt_dict_new();
void TRACE_surf_release(void)
{
- char *key, *value;
- xbt_dict_cursor_t cursor = NULL;
TRACE_surf_resource_utilization_release();
-
- /* get all host from host_containers */
- xbt_dict_foreach(host_containers, cursor, key, value) {
- pajeDestroyContainer(MSG_get_clock(), "HOST", key);
- }
- xbt_dict_foreach(created_links, cursor, key, value) {
- pajeDestroyContainer(MSG_get_clock(), "LINK", key);
- }
}
static void TRACE_surf_set_resource_variable(double date,
xbt_free);
}
-/*
- * TRACE_surf_link_declaration (name, bandwidth, latency): this function
- * saves the bandwidth and latency of a link identified by name. This
- * information is used in the future to create the link container in the trace.
- *
- * caller: net_link_new (from each network model)
- * main: create LINK container, set initial bandwidth and latency
- * return: void
- */
-void TRACE_surf_link_declaration(void *link, char *name, double bw,
- double lat)
-{
- if (!TRACE_is_active())
- return;
-
- if (!link){
- xbt_die ("link is NULL");
- }
-
- //filter out loopback
- if (!strcmp(name, "loopback") || !strcmp(name, "__loopback__"))
- return;
-
- char alias[100];
- snprintf(alias, 100, "%p", link);
- pajeCreateContainer(SIMIX_get_clock(), alias, "LINK", "platform", name);
- xbt_dict_set(created_links, alias, xbt_strdup("1"), xbt_free);
- TRACE_surf_link_set_bandwidth(SIMIX_get_clock(), link, bw);
- TRACE_surf_link_set_latency(SIMIX_get_clock(), link, lat);
-}
-
-/*
- * TRACE_surf_host_declaration (name, power): this function
- * saves the power of a host identified by name. This information
- * is used to create the host container in the trace.
- *
- * caller: cpu_new (from each cpu model) + router parser
- * main: create HOST containers, set initial power value
- * return: void
- */
-void TRACE_surf_host_declaration(const char *name, double power)
-{
- if (!TRACE_is_active())
- return;
- pajeCreateContainer(SIMIX_get_clock(), name, "HOST", "platform", name);
- xbt_dict_set(host_containers, name, xbt_strdup("1"), xbt_free);
- TRACE_surf_host_set_power(SIMIX_get_clock(), name, power);
-}
-
void TRACE_surf_host_set_power(double date, const char *resource,
double power)
{
}
}
-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;
- }
-}
-
void TRACE_surf_action(surf_action_t surf_action, const char *category)
{
if (!TRACE_is_active())