changes
authorbdemsky <bdemsky>
Tue, 21 Jun 2011 07:48:35 +0000 (07:48 +0000)
committerbdemsky <bdemsky>
Tue, 21 Jun 2011 07:48:35 +0000 (07:48 +0000)
Robust/src/Runtime/bamboo/multicoregarbage.h
Robust/src/Runtime/bamboo/multicoregccompact.c
Robust/src/Runtime/bamboo/multicoremem.h
Robust/src/Runtime/bamboo/multicoreruntime.c
Robust/src/Runtime/bamboo/multicoreruntime.h

index 94f8c183145fd1766c83edfb47dbb2e1470791be..2d95c3d6792ac60b44acdbc50d05961cc4fa2ae2 100644 (file)
@@ -105,6 +105,7 @@ void * gcbaseva; // base va for shared memory without reserved sblocks
 static bool gc_checkCoreStatus() {
   for(int i = 0; i < NUMCORES4GC; i++) {
     if(gccorestatus[i]) {
+      printf("CHECK\n");
       return false;
     }
   }  
index b7973372cd8f6e19f18e2d127970425f0ecca2e7..b21410bab17b614360a9206f409ed1f292d04b11 100644 (file)
@@ -335,7 +335,7 @@ void master_compact() {
   compact();
   /* wait for all cores to finish compacting */
 
-  while(gc_checkCoreStatus())
+  while(!gc_checkCoreStatus())
     ;
 
   GCPROFILE_ITEM();
index 2680fb4e4f31af3207d0f58d2331ba3ba1e42176..6297a687e1ec4bded1396083707473875529165a 100644 (file)
@@ -118,7 +118,7 @@ int bamboo_free_smem_size;
 //This flag indicates that a memory request was services
 volatile bool smemflag;
 //Pointer to new block of memory after request
-volatile unsigned int * bamboo_cur_msp;
+volatile void * bamboo_cur_msp;
 //Number of bytes in new block of memory
 volatile int bamboo_smem_size;
 
index 3d9ddb31c14086d376f6a53a1fd6131033ba4f10..37a772575aac41f1eb257b24cd2ac0eb06e451be 100644 (file)
@@ -579,11 +579,10 @@ void abort_task() {
 }
 
 INLINE void initruntimedata() {
-  int i;
   // initialize the arrays
   if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
     // startup core to initialize corestatus[]
-    for(i = 0; i < NUMCORESACTIVE; ++i) {
+    for(int i = 0; i < NUMCORESACTIVE; ++i) {
       corestatus[i] = 1;
       numsendobjs[i] = 0;
       numreceiveobjs[i] = 0;
@@ -596,20 +595,23 @@ INLINE void initruntimedata() {
   self_numsendobjs = 0;
   self_numreceiveobjs = 0;
 
-  for(i = 0; i < BAMBOO_MSG_BUF_LENGTH; ++i) {
+  for(int i = 0; i < BAMBOO_MSG_BUF_LENGTH; ++i) {
     msgdata[i] = -1;
   }
   msgdataindex = 0;
   msgdatalast = 0;
   //msglength = BAMBOO_MSG_BUF_LENGTH;
   msgdatafull = false;
-  for(i = 0; i < BAMBOO_OUT_BUF_LENGTH; ++i) {
+  for(int i = 0; i < BAMBOO_OUT_BUF_LENGTH; ++i) {
     outmsgdata[i] = -1;
   }
   outmsgindex = 0;
   outmsglast = 0;
   outmsgleft = 0;
   isMsgHanging = false;
+  
+
+
 
   smemflag = true;
   bamboo_cur_msp = NULL;
@@ -755,9 +757,6 @@ inline void run(int argc, char** argv) {
 
   // initialize runtime data structures
   initruntimedata();
-
-  // other architecture related initialization
-  initialization();
   initCommunication();
 
   CACHEADAPT_ENABLE_TIMER();
@@ -775,28 +774,28 @@ inline void run(int argc, char** argv) {
 #ifdef TASK
     /* Create queue of active tasks */
     activetasks= genallocatehashtable((unsigned int (*)(void *)) &hashCodetpd,
-        (int (*)(void *,void *)) &comparetpd);
-
+                                     (int (*)(void *,void *)) &comparetpd);
+    
     /* Process task information */
     processtasks();
-
+    
     if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
       /* Create startup object */
       createstartupobject(argc, argv);
     }
 #endif
-
-       if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
+    
+    if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
 #ifdef TASK
-         // run the initStaticAndGlobal method to initialize the static blocks and
-         // global fields
-         initStaticAndGlobal();
+      // run the initStaticAndGlobal method to initialize the static blocks and
+      // global fields
+      initStaticAndGlobal();
 #elif defined MGC
-         // run the main method in the specified mainclass
-         mgc_main(argc, argv);
+      // run the main method in the specified mainclass
+      mgc_main(argc, argv);
 #endif // TASK
-       }
-
+    }
+    
     while(true) {
       GCCHECK(NULL);
 #ifdef TASK
@@ -818,7 +817,7 @@ inline void run(int argc, char** argv) {
         sendStall = false;
       }
 #endif
-
+      
       if(!tocontinue) {
         // check if stop
         if(STARTUPCORE == BAMBOO_NUM_OF_CORE) {
@@ -831,20 +830,20 @@ inline void run(int argc, char** argv) {
 #ifdef PROFILE
             if(!stall) {
 #endif
-            if(isfirst) {
-              // wait for some time
-              int halt = 10000;
-              while(halt--) {
-              }
-              isfirst = false;
-            } else {
-              // send StallMsg to startup core
-              // send stall msg
-              send_msg_4(STARTUPCORE,TRANSTALL,BAMBOO_NUM_OF_CORE,self_numsendobjs,self_numreceiveobjs);
-              sendStall = true;
-              isfirst = true;
-              busystatus = false;
-            }
+             if(isfirst) {
+               // wait for some time
+               int halt = 10000;
+               while(halt--) {
+               }
+               isfirst = false;
+             } else {
+               // send StallMsg to startup core
+               // send stall msg
+               send_msg_4(STARTUPCORE,TRANSTALL,BAMBOO_NUM_OF_CORE,self_numsendobjs,self_numreceiveobjs);
+               sendStall = true;
+               isfirst = true;
+               busystatus = false;
+             }
 #ifdef PROFILE
             }
 #endif
@@ -856,6 +855,6 @@ inline void run(int argc, char** argv) {
       }
     }
   }
-} 
-
+}
 #endif // MULTICORE
index 31ba7d3ca4e8f69696f67454b68c078e70f8af6a..c7d13b0c3e24cf3290f72f75f6267eff01e58f36 100644 (file)
@@ -65,7 +65,6 @@ int self_numreceiveobjs;
 // these are functions should be implemented in           //
 // multicore runtime for any multicore processors         //
 ////////////////////////////////////////////////////////////
-INLINE void initialization(void);
 INLINE void initCommunication(void);
 INLINE void fakeExecution(void);
 INLINE void terminate(void);