diff --git a/runtime/src/katracereader.cpp b/runtime/src/katracereader.cpp index efca83117404fae66b071c8173e4a960f53cc6d5..eb91fc6816579853d132af424a45743e142f5974 100644 --- a/runtime/src/katracereader.cpp +++ b/runtime/src/katracereader.cpp @@ -1234,6 +1234,7 @@ struct task_info { uint64_t addr; uint64_t id; uint64_t date; + uint64_t duration; uint64_t delay; int kid; unsigned int fmtid; @@ -1310,6 +1311,7 @@ void rastello_parallel_region_t::dump_task_info( task_info* ti ) fprintf(fout, "\tT=task_add(id(\"T\",{%" PRIu64 "}));\n", ti->id); fprintf(fout, "\tT->priority=%" PRIu64 ";\n", ti->date ); fprintf(fout, "\tT->p=%i;\n", ti->kid ); + fprintf(fout, "\tT->duration=%i;\n", ti->duration ); /* perf counter & other */ fprintf(fout, "\tT->cost=%" PRIu64 ";\n", ti->delay ); for (size_t i=0; i< ti->perfctr.size(); ++i) @@ -1536,6 +1538,8 @@ printf("pred[id:%i/%p] = {id:%i}/%p\n", succ->id, (void*)succ->addr, task->id, ( if (KAAPI_EVENT_DATA(event,2,i) == 0) /* no explicit == forget them */ break; std::map<uint64_t,kproc_t>::iterator kp = parallel_region_t::container_kproc.find( event->kid ); + task_info* task = rpr->get_taskinfo( KAAPI_EVENT_DATA(event,0,u), false ); + task->duration = event->date - task->date; if (kp == parallel_region_t::container_kproc.end()) printf("***Unkown thread kid: %i\n", event->kid); /*