comparison VMS.h @ 173:bfaebdf60df3

coreLoop: All written variables are now on local stack or in seperate cache line
author Merten Sach <msach@mailbox.tu-berlin.de>
date Tue, 20 Dec 2011 15:39:30 +0100
parents 5161414caa3e
children 0320b49ca013
comparison
equal deleted inserted replaced
79:bcb6f8a547d5 80:b475320313e9
141 * assembly code to fail -- hard-codes offsets of fields 141 * assembly code to fail -- hard-codes offsets of fields
142 * (because -O3 messes with things otherwise) 142 * (because -O3 messes with things otherwise)
143 */ 143 */
144 typedef struct 144 typedef struct
145 { 145 {
146 union{ //added padding, because this variable is written a lot by different cores
147 //thus invalidating a lot of the stucture
148 volatile int32 masterLock;
149 char padding[256];
150 } masterLockUnion;
146 SlaveScheduler slaveScheduler; 151 SlaveScheduler slaveScheduler;
147 RequestHandler requestHandler; 152 RequestHandler requestHandler;
148 153
149 SchedSlot ***allSchedSlots; 154 SchedSlot ***allSchedSlots;
150 VMSQueueStruc **readyToAnimateQs; 155 VMSQueueStruc **readyToAnimateQs;
156 int32 amtOfOutstandingMem; //total currently allocated 161 int32 amtOfOutstandingMem; //total currently allocated
157 162
158 void *coreLoopReturnPt;//addr to jump to to re-enter coreLoop 163 void *coreLoopReturnPt;//addr to jump to to re-enter coreLoop
159 164
160 int32 setupComplete; 165 int32 setupComplete;
161 volatile int32 masterLock; 166 //int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP
162
163 int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP
164 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal 167 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal
165 int32 workStealingLock; 168 int32 workStealingLock;
166 169
167 int32 numProcrsCreated; //gives ordering to processor creation 170 int32 numProcrsCreated; //gives ordering to processor creation
168 171