# HG changeset patch # User Sean Halle # Date 1344240881 25200 # Node ID 832bc715fbf26945a9b2de7f9dbf89e47508b870 # Parent eb3d77ca9f594ca9dab1e9a73f8cd80d15e34953 Some bug fixes.. not compiling yet diff -r eb3d77ca9f59 -r 832bc715fbf2 VSs.c --- a/VSs.c Thu Aug 02 01:03:14 2012 -0700 +++ b/VSs.c Mon Aug 06 01:14:41 2012 -0700 @@ -213,19 +213,21 @@ for( slotNum = 0; slotNum < NUM_ANIM_SLOTS; ++slotNum ) { idleSlv = VMS_int__create_slaveVP(&idle_fn,NULL); idleSlv->coreAnimatedBy = coreNum; - idleSlv->animSlotAssignedTo = slotNum; + idleSlv->animSlotAssignedTo = + _VMSMasterEnv->allAnimSlots[coreNum][slotNum]; semanticEnv->idleSlv[coreNum][slotNum] = idleSlv; currTaskSlv = VMS_int__create_slaveVP( &idle_fn, NULL ); currTaskSlv->coreAnimatedBy = coreNum; - currTaskSlv->animSlotAssignedTo = slotNum; + currTaskSlv->animSlotAssignedTo = + _VMSMasterEnv->allAnimSlots[coreNum][slotNum]; semanticEnv->currTaskSlvs[coreNum][slotNum] = currTaskSlv; } } //create the ready queues, hash tables used for matching and so forth semanticEnv->slavesReadyToResumeQ = makeVMSQ(); - semanticEnv->extraTaskSlvQ = makeVMSQ(); + semanticEnv->freeExtraTaskSlvQ = makeVMSQ(); semanticEnv->taskReadyQ = makeVMSQ(); semanticEnv->argPtrHashTbl = makeHashTable32( 16, &VMS_int__free ); diff -r eb3d77ca9f59 -r 832bc715fbf2 VSs.h --- a/VSs.h Thu Aug 02 01:03:14 2012 -0700 +++ b/VSs.h Mon Aug 06 01:14:41 2012 -0700 @@ -182,9 +182,9 @@ typedef struct { - PrivQueueStruc **slavesReadyToResumeQ; //Shared (slaves not pinned) - PrivQueueStruc **freeExtraTaskSlvQ; //Shared - PrivQueueStruc *taskReadyQ; //Shared (tasks not pinned) + PrivQueueStruc *slavesReadyToResumeQ; //Shared (slaves not pinned) + PrivQueueStruc *freeExtraTaskSlvQ; //Shared + PrivQueueStruc *taskReadyQ; //Shared (tasks not pinned) SlaveVP *currTaskSlvs[NUM_CORES][NUM_ANIM_SLOTS]; HashTable *argPtrHashTbl; HashTable *commHashTbl; @@ -240,7 +240,7 @@ TransListElem *lastTransEntered; bool32 needsTaskAssigned; VSsTaskStub *taskStub; - VSsSlvType slaveType; + enum VSsSlvType slaveType; } VSsSemData; @@ -370,6 +370,8 @@ VSs__create_slave_with_affinity( TopLevelFnPtr fnPtr, void *initData, SlaveVP *creatingSlv, int32 coreToAssignOnto); +void +idle_fn(void* data, SlaveVP *animatingSlv); //===================== Measurement of Lang Overheads ===================== #include "Measurement/VSs_Measurement.h" diff -r eb3d77ca9f59 -r 832bc715fbf2 VSs_PluginFns.c --- a/VSs_PluginFns.c Thu Aug 02 01:03:14 2012 -0700 +++ b/VSs_PluginFns.c Mon Aug 06 01:14:41 2012 -0700 @@ -284,7 +284,7 @@ if( semData->slaveType == slotTaskSlv ) { //should never call dissipate on a slot assigned slave - VMS__throw_exception(); + VMS_PI__throw_exception( "dissipate a slot-assigned slave", requestingSlv, NULL ); } //if make it to here, then is a thread slave diff -r eb3d77ca9f59 -r 832bc715fbf2 VSs_Request_Handlers.c --- a/VSs_Request_Handlers.c Thu Aug 02 01:03:14 2012 -0700 +++ b/VSs_Request_Handlers.c Mon Aug 06 01:14:41 2012 -0700 @@ -11,6 +11,8 @@ #include "Queue_impl/PrivateQueue.h" #include "Hash_impl/PrivateHash.h" #include "VSs.h" +#include "VSs_Request_Handlers.h" + @@ -654,7 +656,8 @@ HashEntry *entry; HashTable *commHashTbl = semEnv->commHashTbl; - DEBUG__printf2(dbgRqstHdlr,"SendFromTo request from processor %d to %d",semReq->senderID,semReq->receiverID) + DEBUG__printf2(dbgRqstHdlr,"SendFromTo request from processor %d to %d", + semReq->senderID[1],semReq->receiverID[1]) receiverID = semReq->receiverID; //For "send", know both send & recv procrs senderID = semReq->senderID; @@ -737,7 +740,7 @@ HashEntry *entry; HashTable *commHashTbl = semEnv->commHashTbl; - DEBUG__printf1(dbgRqstHdlr,"SendType request to %d",semReq->receiverID) + DEBUG__printf1(dbgRqstHdlr,"SendType request to %d",semReq->receiverID[1]) receiverID = semReq->receiverID; //For "send", know both send & recv procrs receiverSlv = semReq->receiverSlv; @@ -826,7 +829,7 @@ HashEntry *entry; HashTable *commHashTbl = semEnv->commHashTbl; - DEBUG__printf2(dbgRqstHdlr,"SendFromTo request from %d to %d",semReq->senderID,semReq->receiverID) + DEBUG__printf2(dbgRqstHdlr,"SendFromTo request from %d to %d",semReq->senderID[1],semReq->receiverID[1]) receiverID = semReq->receiverID; //For "send", know both send & recv procrs senderID = semReq->senderID; diff -r eb3d77ca9f59 -r 832bc715fbf2 VSs_Request_Handlers.h --- a/VSs_Request_Handlers.h Thu Aug 02 01:03:14 2012 -0700 +++ b/VSs_Request_Handlers.h Mon Aug 06 01:14:41 2012 -0700 @@ -52,6 +52,11 @@ inline void handleEndDataSingleton( VSsSemReq *semReq, SlaveVP *requestingSlv, VSsSemEnv *semEnv ); +inline void +free_task_stub( VSsTaskStub *stubToFree ); +inline void +replaceWithNewSlotSlv( SlaveVP *requestingSlv, VSsSemEnv *semEnv ); + #endif /* _VSs_REQ_H */