-recoverystats flag
authorjihoonl <jihoonl>
Mon, 11 Jan 2010 10:54:20 +0000 (10:54 +0000)
committerjihoonl <jihoonl>
Mon, 11 Jan 2010 10:54:20 +0000 (10:54 +0000)
Robust/src/IR/Flat/BuildCode.java
Robust/src/IR/State.java

index 2655bb7ec372883ed1e1d15fb64dbe74ee35c136..14a6fe3910c95dd366e7c02976da8f6666ca91d1 100644 (file)
@@ -410,6 +410,19 @@ public class BuildCode {
       outmethod.println("#endif\n");
     }
 
+    if(state.DSMRECOVERYSTATS) {
+      outmethod.println("#ifdef RECOVERYSTATS\n");
+      outmethod.println("printf(\"***** Recovery Stats *****\\n\");");
+      outmethod.println("printf(\"numRecovery = %d\\n\",numRecovery)");
+      outmethod.println("int nRecovery=0;");
+      outmethod.println("for(nRecovery=0;nRecovery<numRecovery;nRecovery++) {");
+      outmethod.println("  printf(\"Dead Machine = %s\\n\",deadMachine[nRecovery]);");
+      outmethod.println("  printf(\"Recovery Time = %.2f\\n\",elapsedTime[nRecovery]);");
+      outmethod.println(" }\n");
+      outmethod.println("fflush(stdout);");
+      outmethod.println("#endif\n");
+    }
+
     if (state.EVENTMONITOR) {
       outmethod.println("dumpdata();");
     }
@@ -965,6 +978,14 @@ public class BuildCode {
       outclassdefs.println("#endif\n");
     }
     outclassdefs.print("#endif\n");
+
+    if(state.DSMRECOVERYSTATS) {
+      outclassdefs.print("#ifdef RECOVERYSTATS\n");
+      outclassdefs.print("extern int numRecovery;\n");
+      outclassdefs.print("extern unsigned int deadMachine[8];\n");
+      outclassdefs.print("extern double elapsedTime[8];\n");
+      outclassdefs.print("#endif\n");
+    }
     outclassdefs.print("int numprefetchsites = " + pa.prefetchsiteid + ";\n");
 
     Iterator it=state.getClassSymbolTable().getDescriptorsIterator();
index 90c50fe5db3cb1b7fe7f8b3b73bc05aab247aa28..6765fba2097e6163f29c81ba6d7ef688df03f5a4 100644 (file)
@@ -102,6 +102,9 @@ public class State {
   public boolean DSM=false;
   public boolean DSMTASK=false;
   public static boolean ABORTREADERS=false;
+
+  // Recovery Stats Options
+  public boolean DSMRECOVERYSTATS=false;
   //STM options
   public boolean EVENTMONITOR=false;
   public static boolean STMARRAY=false;