diff MasterLoop.c @ 184:50b29548d4f0

handler interface for counters... not working
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Fri, 13 Jan 2012 15:03:32 +0100
parents 7523ee70d66c
children 28cc465f7eb7
line diff
     1.1 --- a/MasterLoop.c	Fri Jan 06 18:55:05 2012 +0100
     1.2 +++ b/MasterLoop.c	Fri Jan 13 15:03:32 2012 +0100
     1.3 @@ -128,7 +128,10 @@
     1.4     requestHandler   = masterEnv->requestHandler;
     1.5     slaveScheduler   = masterEnv->slaveScheduler;
     1.6     semanticEnv      = masterEnv->semanticEnv;
     1.7 -
     1.8 +   
     1.9 +#ifdef MEAS__PERF_COUNTERS
    1.10 +   //CounterHandler counterHandler = masterEnv->counterHandler;
    1.11 +#endif
    1.12  
    1.13        //Poll each slot's Done flag
    1.14     numSlotsFilled = 0;
    1.15 @@ -148,6 +151,11 @@
    1.16                 saveLowTimeStampCountInto( startStamp1 );
    1.17                 #endif
    1.18                 #ifdef MEAS__PERF_COUNTERS
    1.19 +               int cycles, instrs;
    1.20 +               saveCyclesAndInstrs(thisCoresIdx,cycles, instrs);
    1.21 +               //(*counterHandler)(MasterLoop_beforeReqHdlr,thisCoresIdx,slotIdx,currSlot->procrAssignedToSlot,cycles,instrs);
    1.22 +               
    1.23 +               /*
    1.24                 int lastRecordIdx = currSlot->procrAssignedToSlot->counter_history_array_info->numInArray -1;
    1.25                 CounterRecord* lastRecord = currSlot->procrAssignedToSlot->counter_history[lastRecordIdx];
    1.26                 lastRecord->req_core = thisCoresIdx;
    1.27 @@ -156,11 +164,7 @@
    1.28                 //print counters from last run
    1.29                 addToDynArray((void*)lastRecord,masterEnv->counter_history_array_info);
    1.30                 print_record_csv_to_file(lastRecord,_VMSMasterEnv->counteroutput);
    1.31 -               
    1.32 -  
    1.33                
    1.34 -
    1.35 -               
    1.36                 //print_record_human_readable(lastRecord);
    1.37                 //create new entry in record array
    1.38                 CounterRecord* newRecord = VMS__malloc(sizeof(CounterRecord));
    1.39 @@ -171,7 +175,8 @@
    1.40                 newRecord->req_instrs = lastRecord->next_task_req_instrs;
    1.41                 getReturnAddressBeforeLibraryCall(currSlot->procrAssignedToSlot, &(newRecord->addr_of_libcall_for_req));
    1.42                 addToDynArray( (void*) newRecord, currSlot->procrAssignedToSlot->counter_history_array_info);
    1.43 -               lastRecord = newRecord;
    1.44 +               lastRecord = newRecord; 
    1.45 +                */
    1.46                 #endif
    1.47                 //============================================================
    1.48           (*requestHandler)( currSlot->procrAssignedToSlot, semanticEnv );
    1.49 @@ -185,8 +190,12 @@
    1.50                 #endif
    1.51                 #ifdef MEAS__PERF_COUNTERS
    1.52                 //done with constraints check
    1.53 +               saveCyclesAndInstrs(thisCoresIdx,cycles, instrs);
    1.54 +               //(*counterHandler)(MasterLoop_afterReqHdlr,thisCoresIdx,slotIdx,currSlot->procrAssignedToSlot,cycles,instrs);
    1.55 +               /*
    1.56                 saveCyclesAndInstrs(thisCoresIdx,lastRecord->sc_done_cycles,lastRecord->sc_done_instrs);
    1.57                 saveLowTimeStampCountInto(lastRecord->blocked_timestamp);
    1.58 +                */
    1.59                 #endif
    1.60                 //============================================================
    1.61         }
    1.62 @@ -208,13 +217,18 @@
    1.63              numSlotsFilled               += 1;
    1.64  
    1.65                 #ifdef MEAS__PERF_COUNTERS
    1.66 +               uint64 cycles;
    1.67 +               uint64 instrs;
    1.68 +               saveCyclesAndInstrs(thisCoresIdx,cycles,instrs);
    1.69 +               //(*counterHandler)(MasterLoop_beforeAssign,thisCoresIdx,slotIdx,schedVirtPr,tmp_cycles,tmp_instrs);
    1.70 +               //(*counterHandler)(MasterLoop_afterAssign,thisCoresIdx,slotIdx,schedVirtPr,cycles,instrs);
    1.71                 //end assigner
    1.72 -               int lastRecordIdx = currSlot->procrAssignedToSlot->counter_history_array_info->numInArray -1;
    1.73 -               CounterRecord* lastRecord = currSlot->procrAssignedToSlot->counter_history[lastRecordIdx];
    1.74 -               lastRecord->assigning_core = thisCoresIdx;
    1.75 -               lastRecord->start_assign_cycles = tmp_cycles;
    1.76 -               lastRecord->start_assign_instrs = tmp_instrs;
    1.77 -               saveCyclesAndInstrs(thisCoresIdx,lastRecord->end_assign_cycles,lastRecord->end_assign_instrs);
    1.78 +               //int lastRecordIdx = currSlot->procrAssignedToSlot->counter_history_array_info->numInArray -1;
    1.79 +               //CounterRecord* lastRecord = currSlot->procrAssignedToSlot->counter_history[lastRecordIdx];
    1.80 +               //lastRecord->assigning_core = thisCoresIdx;
    1.81 +               //lastRecord->start_assign_cycles = tmp_cycles;
    1.82 +               //lastRecord->start_assign_instrs = tmp_instrs;
    1.83 +               //saveCyclesAndInstrs(thisCoresIdx,lastRecord->end_assign_cycles,lastRecord->end_assign_instrs);
    1.84                 #endif
    1.85  
    1.86              writeVMSQ( schedVirtPr, readyToAnimateQ );