From 1887c10301602c6c3e24242d86e93beff6a899f2 Mon Sep 17 00:00:00 2001 From: schnorr Date: Tue, 19 Oct 2010 08:41:35 +0000 Subject: [PATCH] dotloader to trace task categories based on dot file git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8430 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- examples/simdag/dot/dot_test.c | 4 ++++ src/simdag/sd_dotloader.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/examples/simdag/dot/dot_test.c b/examples/simdag/dot/dot_test.c index 4a6da7bf27..319be2477e 100644 --- a/examples/simdag/dot/dot_test.c +++ b/examples/simdag/dot/dot_test.c @@ -25,6 +25,8 @@ int main(int argc, char **argv) /* initialisation of SD */ SD_init(&argc, argv); + TRACE_start (); + /* Check our arguments */ if (argc < 3) { INFO1("Usage: %s platform_file dot_file [trace_file]", argv[0]); @@ -122,5 +124,7 @@ int main(int argc, char **argv) /* exit */ SD_exit(); + + TRACE_end(); return 0; } diff --git a/src/simdag/sd_dotloader.c b/src/simdag/sd_dotloader.c index 31b9e8b946..0621f4be66 100644 --- a/src/simdag/sd_dotloader.c +++ b/src/simdag/sd_dotloader.c @@ -67,6 +67,16 @@ static void dot_task_free(void *task) SD_task_destroy(t); } +static void TRACE_sd_dotloader (SD_task_t task, const char *category) +{ + if (category){ + if (strlen (category) != 0){ + TRACE_category (category); + TRACE_sd_set_task_category (task, category); + } + } +} + /** @brief loads a DOT file describing a DAG * * See http://www.graphviz.org/doc/info/lang.html @@ -181,6 +191,9 @@ void dot_add_task(Agnode_t * dag_node) if (current_job == NULL) { current_job = SD_task_create_comp_seq(name, (void *) performer, runtime); +#ifdef HAVE_TRACING + TRACE_sd_dotloader (current_job, agget (dag_node, (char*)"category")); +#endif xbt_dict_set(jobs, name, current_job, NULL); xbt_dynar_push(result, ¤t_job); } @@ -221,6 +234,9 @@ void dot_add_input_dependencies(SD_task_t current_job, Agedge_t * edge) file = xbt_dict_get_or_null(files, name); if (file == NULL) { file = SD_task_create_comm_e2e(name, NULL, size); +#ifdef HAVE_TRACING + TRACE_sd_dotloader (file, agget (edge, (char*)"category")); +#endif xbt_dict_set(files, name, file, &dot_task_free); } else { if (SD_task_get_amount(file) != size) { @@ -256,6 +272,9 @@ void dot_add_output_dependencies(SD_task_t current_job, Agedge_t * edge) file = xbt_dict_get_or_null(files, name); if (file == NULL) { file = SD_task_create_comm_e2e(name, NULL, size); +#ifdef HAVE_TRACING + TRACE_sd_dotloader (file, agget (edge, (char*)"category")); +#endif xbt_dict_set(files, name, file, &dot_task_free); } else { if (SD_task_get_amount(file) != size) { -- 2.20.1