switch to spaces only..
[IRC.git] / Robust / src / Runtime / DSTM / interface / addPrefetchEnhance.c
index d416090280a518620ef19b07b79ec30782331edf..eda8cc3f19729ad08de58712d82b019056afa8a2 100644 (file)
@@ -1,5 +1,5 @@
 #include "addPrefetchEnhance.h"
-#include "prelookup.h"
+#include "altprelookup.h"
 
 extern int numprefetchsites; // Number of prefetch sites
 extern pfcstats_t *evalPrefetch; //Global array that keeps track of operation mode (ON/OFF) for each prefetch site
@@ -12,9 +12,9 @@ extern unsigned int myIpAddr;
 extern char bigarray[16*1024*1024];
 extern int bigindex;
 #define LOGEVENT(x) { \
-  int tmp=bigindex++;                         \
-  bigarray[tmp]=x;                            \
-  }
+    int tmp=bigindex ++;                         \
+    bigarray[tmp]=x;                            \
+}
 #else
 #define LOGEVENT(x)
 #endif
@@ -57,15 +57,16 @@ char getOperationMode(int siteid) {
  * we take action accordingly */
 void handleDynPrefetching(int numLocal, int ntuples, int siteid) {
   if(numLocal < ntuples) {
-    /* prefetch not found locally(miss in cache) */
+    /* prefetch not found locally(miss in cache); turn on prefetching*/
     evalPrefetch[siteid].operMode = 1;
     evalPrefetch[siteid].uselesscount = SHUTDOWNINTERVAL;
   } else {
+    //Turn off prefetch site
     if(getOperationMode(siteid) != 0) {
       evalPrefetch[siteid].uselesscount--;
       if(evalPrefetch[siteid].uselesscount <= 0) {
-       LOGEVENT('O');
-       evalPrefetch[siteid].operMode = 0;
+        LOGEVENT('O');
+        evalPrefetch[siteid].operMode = 0;
       }
     }
   }
@@ -82,12 +83,12 @@ void cleanPCache() {
     chashlistnode_t *curr = &ptr[i]; //for each entry in the cache lookupTable
     while(curr != NULL) {
       if(curr->key == 0)
-       break;
+        break;
       objheader_t *header1, *header2;
       /* Not found in local machine's object store and found in prefetch cache */
       if((header1 = mhashSearch(curr->key)) == NULL && ((header2 = prehashSearch(curr->key)) != NULL)) {
-       /* Remove from prefetch cache */
-       prehashRemove(curr->key);
+        /* Remove from prefetch cache */
+        prehashRemove(curr->key);
       }
       curr = curr->next;
     }
@@ -122,14 +123,14 @@ int updatePrefetchCache(trans_req_data_t *tdata) {
   int retval;
   char oidType;
   /*//TODO comment it for now because objects read are already in the prefetch cache
-  oidType = 'R';
-  if(tdata->f.numread > 0) {
-    if((retval = copyToCache(tdata->f.numread, (unsigned int *)(tdata->objread), oidType)) != 0) {
+     oidType = 'R';
+     if(tdata->f.numread > 0) {
+     if((retval = copyToCache(tdata->f.numread, (unsigned int *)(tdata->objread), oidType)) != 0) {
       printf("%s(): Error in copying objects read at %s, %d\n", __func__, __FILE__, __LINE__);
       return -1;
-    }
-  }
-  */
+     }
+     }
+   */
   if(tdata->f.nummod > 0) {
     oidType = 'M';
     if((retval = copyToCache(tdata->f.nummod, tdata->oidmod, oidType)) != 0) {
@@ -149,7 +150,7 @@ int copyToCache(int numoid, unsigned int *oidarray, char oidType) {
     //  oid = *((unsigned int *)(objread+(sizeof(unsigned int)+
     //                                    sizeof(unsigned short))*i));
     //} else {
-      oid = oidarray[i];
+    oid = oidarray[i];
     //}
     pthread_mutex_lock(&prefetchcache_mutex);
     objheader_t * header;
@@ -175,14 +176,10 @@ int copyToCache(int numoid, unsigned int *oidarray, char oidType) {
       newAddr->version += 1;
       newAddr->notifylist = NULL;
     }
+    STATUS(newAddr)=0;
+
     //make an entry in prefetch lookup hashtable
-    void *oldptr;
-    if((oldptr = prehashSearch(oid)) != NULL) {
-      prehashRemove(oid);
-      prehashInsert(oid, newAddr);
-    } else {
-      prehashInsert(oid, newAddr);
-    }
+    prehashInsert(oid, newAddr);
   } //end of for
   return 0;
 }