Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
diff VMS.c @ 193:20358f56e498
fix coreloop recording bug and eliminate race condition on measurement-collecting list
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Thu, 09 Feb 2012 15:40:11 +0100 |
| parents | 69eb54ce9c4b |
| children | d83f59e6e2db |
line diff
1.1 --- a/VMS.c Fri Feb 03 17:32:48 2012 +0100 1.2 +++ b/VMS.c Thu Feb 09 15:40:11 2012 +0100 1.3 @@ -149,6 +149,7 @@ 1.4 //Q: should give masterVP core-specific info as its init data? 1.5 masterVPs[ coreIdx ] = VMS__create_procr( (VirtProcrFnPtr)&masterLoop, (void*)masterEnv ); 1.6 masterVPs[ coreIdx ]->coreAnimatedBy = coreIdx; 1.7 + masterVPs[ coreIdx ]->isMasterVP = TRUE; 1.8 allSchedSlots[ coreIdx ] = create_sched_slots(); //makes for one core 1.9 _VMSMasterEnv->numMasterInARow[ coreIdx ] = 0; 1.10 _VMSMasterEnv->workStealingGates[ coreIdx ] = NULL; 1.11 @@ -440,7 +441,7 @@ 1.12 //start work 1.13 uint64 cycles,instrs; 1.14 saveCyclesAndInstrs(animatingPr->coreAnimatedBy,cycles, instrs); 1.15 - (*(_VMSMasterEnv->counterHandler))(Procr_suspend,animatingPr,cycles,instrs); 1.16 + (*(_VMSMasterEnv->counterHandler))(HwResponderInvocation_start,animatingPr->procrID,animatingPr->numTimesScheduled,animatingPr,cycles,instrs); 1.17 #endif 1.18 //======================================================================= 1.19 1.20 @@ -730,6 +731,7 @@ 1.21 for( coreIdx=0; coreIdx < NUM_CORES; coreIdx++ ) 1.22 { //Note, this is running in the master 1.23 shutDownPr = VMS__create_procr( &endOSThreadFn, NULL ); 1.24 + shutDownPr->isShutdownVP = TRUE; 1.25 writeVMSQ( shutDownPr, _VMSMasterEnv->readyToAnimateQs[coreIdx] ); 1.26 } 1.27 #ifdef MEAS__PERF_COUNTERS
