comparison VMS.c @ 177:3bd35fc83c61

move loopgraph recording to plugin (\! changed scheduler fn prototype \!)
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Wed, 04 Jan 2012 16:40:10 +0100
parents 981acd1db6af
children 7523ee70d66c
comparison
equal deleted inserted replaced
80:bbcb869667c8 86:f402a989d96c
186 186
187 MakeTheMeasHists(); 187 MakeTheMeasHists();
188 188
189 189
190 #ifdef DETECT_LOOP_GRAPH 190 #ifdef DETECT_LOOP_GRAPH
191 _VMSMasterEnv->loop_graph = VMS__malloc(10*sizeof(void*)); 191
192 _VMSMasterEnv->loop_graph_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->loop_graph),10);
193 int loop_i;
194 for(loop_i=0;loop_i<NUM_CORES;loop_i++){
195 _VMSMasterEnv->loop_counter[loop_i]=0;
196 }
197
198 #endif 192 #endif
199 193
200 #ifdef MEAS__PERF_COUNTERS 194 #ifdef MEAS__PERF_COUNTERS
201 _VMSMasterEnv->counter_history = VMS__malloc(10*sizeof(void*)); 195 _VMSMasterEnv->counter_history = VMS__malloc(10*sizeof(void*));
202 _VMSMasterEnv->counter_history_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->counter_history),10); 196 _VMSMasterEnv->counter_history_array_info = makePrivDynArrayInfoFrom((void***)&(_VMSMasterEnv->counter_history),10);
783 //Before getting rid of everything, print out any measurements made 777 //Before getting rid of everything, print out any measurements made
784 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, (DynArrayFnPtr)&printHist ); 778 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, (DynArrayFnPtr)&printHist );
785 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, (DynArrayFnPtr)&saveHistToFile); 779 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, (DynArrayFnPtr)&saveHistToFile);
786 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, &freeHistExt ); 780 //forAllInDynArrayDo( _VMSMasterEnv->measHistsInfo, &freeHistExt );
787 781
788 #ifdef DETECT_LOOP_GRAPH 782
789 FILE* loop_output;
790 int loop_n;
791 char loop_filename[255];
792 for(loop_n=0;loop_n<255;loop_n++)
793 {
794 sprintf(loop_filename, "./counters/LoopGraph.%d.dot",loop_n);
795 loop_output = fopen(loop_filename,"r");
796 if(loop_output)
797 {
798 fclose(loop_output);
799 }else{
800 break;
801 }
802 }
803 if(loop_n<255){
804 printf("Saving Loop Graph to File: %s ...\n", loop_filename);
805 loop_output = fopen(loop_filename,"w+");
806 if(loop_output!=NULL){
807 set_dependency_file(loop_output);
808 fprintf(loop_output,"digraph Loop {\n");
809 set_loop_file(loop_output);
810 forAllInDynArrayDo(_VMSMasterEnv->counter_history_array_info, &print_dot_node_info );
811 forAllInDynArrayDo( _VMSMasterEnv->loop_graph_array_info, &print_per_slot_to_file );
812 //int coreIdx;
813 //for(coreIdx=0;coreIdx<NUM_CORES;coreIdx++){
814 // fprintf(loop_output,"sync%d_%d [shape=rect,label=\"Sync\"];\n",coreIdx,_VMSMasterEnv->loop_counter[coreIdx]);
815 //}
816 fprintf(loop_output,"}\n");
817 } else
818 printf("Opening Loop Graph file failed. Please check that folder \"counters\" exists in run directory.\n");
819 } else {
820 printf("Could not open Loop Graph file, please clean \"counters\" folder. (Must contain less than 255 files.)\n");
821 }
822 #endif
823 #ifdef MEAS__TIME_PLUGIN 783 #ifdef MEAS__TIME_PLUGIN
824 printHist( _VMSMasterEnv->reqHdlrLowTimeHist ); 784 printHist( _VMSMasterEnv->reqHdlrLowTimeHist );
825 saveHistToFile( _VMSMasterEnv->reqHdlrLowTimeHist ); 785 saveHistToFile( _VMSMasterEnv->reqHdlrLowTimeHist );
826 printHist( _VMSMasterEnv->reqHdlrHighTimeHist ); 786 printHist( _VMSMasterEnv->reqHdlrHighTimeHist );
827 saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist ); 787 saveHistToFile( _VMSMasterEnv->reqHdlrHighTimeHist );