Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
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 );
