comparison VMS.h @ 218:82f7defac851

Added backoff to core loop, cleaned up core loop code, cleaned comments
author Some Random Person <seanhalle@yahoo.com>
date Sat, 10 Mar 2012 21:48:53 -0800
parents 10a72bcedbf0
children 8059fb8d5465
comparison
equal deleted inserted replaced
102:81384f7fc3d3 103:057cc6c4005b
50 typedef void TopLevelFn ( void *, SlaveVP * ); //initData, animSlv 50 typedef void TopLevelFn ( void *, SlaveVP * ); //initData, animSlv
51 typedef void (*ResumeSlvFnPtr) ( SlaveVP *, void * ); 51 typedef void (*ResumeSlvFnPtr) ( SlaveVP *, void * );
52 52
53 //============================ HW Dependent Fns ================================ 53 //============================ HW Dependent Fns ================================
54 54
55 #include "VMS__HW_dependent.h" 55 #include "Hardware_Dependent/VMS__HW_measurement.h"
56 #include "Hardware_Dependent/VMS__primitives.h"
56 57
57 //============================= Statistics ================================== 58 //============================= Statistics ==================================
58 59
59 inline TSCount getTSCount(); 60 inline TSCount getTSCount();
60 61
112 void *startOfStack; 113 void *startOfStack;
113 void *stackPtr; 114 void *stackPtr;
114 void *framePtr; 115 void *framePtr;
115 void *resumeInstrPtr; 116 void *resumeInstrPtr;
116 117
117 void *coreLoopStartPt; //allows proto-runtime to be linked later 118 void *coreCtlrStartPt; //allows proto-runtime to be linked later
118 void *coreLoopFramePtr; //restore before jmp back to core loop 119 void *coreCtlrFramePtr; //restore before jmp back to core controller
119 void *coreLoopStackPtr; //restore before jmp back to core loop 120 void *coreCtlrStackPtr; //restore before jmp back to core controller
120 121
121 SchedSlot *schedSlot; 122 SchedSlot *schedSlot;
122 VMSReqst *requests; 123 VMSReqst *requests;
123 124
124 void *semanticData; //this is live for the life of Slv 125 void *semanticData; //this is live for the life of Slv
149 void *semanticEnv; 150 void *semanticEnv;
150 void *OSEventStruc; //for future, when add I/O to BLIS 151 void *OSEventStruc; //for future, when add I/O to BLIS
151 MallocArrays *freeLists; 152 MallocArrays *freeLists;
152 int32 amtOfOutstandingMem; //total currently allocated 153 int32 amtOfOutstandingMem; //total currently allocated
153 154
154 void *coreLoopReturnPt;//addr to jump to to re-enter coreLoop 155 void *coreCtlrReturnPt;//addr to jump to to re-enter coreCtlr
155 156
156 int32 setupComplete; 157 int32 setupComplete;
157 int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP 158 int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP
158 int32 masterLock __align_to_cacheline__; 159 int32 masterLock __align_to_cacheline__;
159 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal 160 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal
196 }; 197 };
197 //GateStruc 198 //GateStruc
198 199
199 //======================= OS Thread related =============================== 200 //======================= OS Thread related ===============================
200 201
201 void * coreLoop( void *paramsIn ); //standard PThreads fn prototype 202 void * coreController( void *paramsIn ); //standard PThreads fn prototype
202 void * coreLoop_Seq( void *paramsIn ); //standard PThreads fn prototype 203 void * coreCtlr_Seq( void *paramsIn ); //standard PThreads fn prototype
203 void masterLoop( void *initData, SlaveVP *masterVP ); 204 void masterLoop( void *initData, SlaveVP *masterVP );
204 205
205 206
206 typedef struct 207 typedef struct
207 { 208 {
212 213
213 //============================= Global Vars ================================ 214 //============================= Global Vars ================================
214 215
215 volatile MasterEnv *_VMSMasterEnv __align_to_cacheline__; 216 volatile MasterEnv *_VMSMasterEnv __align_to_cacheline__;
216 217
217 pthread_t coreLoopThdHandles[ NUM_CORES ]; //pthread's virt-procr state 218 pthread_t coreCtlrThdHandles[ NUM_CORES ]; //pthread's virt-procr state
218 ThdParams *coreLoopThdParams [ NUM_CORES ]; 219 ThdParams *coreCtlrThdParams [ NUM_CORES ];
219 pthread_mutex_t suspendLock = PTHREAD_MUTEX_INITIALIZER; 220 pthread_mutex_t suspendLock = PTHREAD_MUTEX_INITIALIZER;
220 pthread_cond_t suspendCond = PTHREAD_COND_INITIALIZER; 221 pthread_cond_t suspendCond = PTHREAD_COND_INITIALIZER;
221 222
222 //========================= Function Prototypes =========================== 223 //========================= Function Prototypes ===========================
223 224