[vmkit-commits] [vmkit] r100969 - in /vmkit/trunk: lib/J3/VMCore/Jnjvm.cpp lib/Mvm/GCMmap2/MvmGC.h lib/Mvm/GCMmap2/gccollector.cpp lib/Mvm/MMTk/MvmGC.cpp lib/Mvm/MMTk/MvmGC.h mmtk/mmtk-alloc/Selected.cpp mmtk/mmtk-j3/Collection.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Apr 11 10:06:54 PDT 2010


Author: geoffray
Date: Sun Apr 11 12:06:54 2010
New Revision: 100969

URL: http://llvm.org/viewvc/llvm-project?rev=100969&view=rev
Log:
Print runtime information on GC when -verbose:gc is set.


Modified:
    vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/Mvm/GCMmap2/MvmGC.h
    vmkit/trunk/lib/Mvm/GCMmap2/gccollector.cpp
    vmkit/trunk/lib/Mvm/MMTk/MvmGC.cpp
    vmkit/trunk/lib/Mvm/MMTk/MvmGC.h
    vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
    vmkit/trunk/mmtk/mmtk-j3/Collection.cpp

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp Sun Apr 11 12:06:54 2010
@@ -851,19 +851,14 @@
 }
 
 void ClArgumentsInfo::printVersion() {
-  fprintf(stdout, "JnJVM for Java 1.1 -- 1.5\n");
+  fprintf(stdout, "J3 for Java 1.1 -- 1.5\n");
 }
 
 void ClArgumentsInfo::printInformation() {
   fprintf(stdout, 
-  "Usage: java [-options] class [args...] (to execute a class)\n"
-   "or  java [-options] -jar jarfile [args...]\n"
+  "Usage: j3 [-options] class [args...] (to execute a class)\n"
+   "or  j3 [-options] -jar jarfile [args...]\n"
            "(to execute a jar file) where options include:\n"
-    "-client       to select the \"client\" VM\n"
-    "-server       to select the \"server\" VM\n"
-    "-hotspot      is a synonym for the \"client\" VM  [deprecated]\n"
-    "              The default VM is client.\n"
-    "\n"
     "-cp <class search path of directories and zip/jar files>\n"
     "-classpath <class search path of directories and zip/jar files>\n"
     "              A : separated list of directories, JAR archives,\n"
@@ -906,11 +901,7 @@
   if (i == argc) printInformation();
   while (i < argc) {
     char* cur = argv[i];
-    if (!(strcmp(cur, "-client"))) {
-      nyi();
-    } else if (!(strcmp(cur, "-server"))) {
-      nyi();
-    } else if (!(strcmp(cur, "-classpath"))) {
+    if (!(strcmp(cur, "-classpath"))) {
       ++i;
       if (i == argc) printInformation();
       else vm->setClasspath(argv[i]);
@@ -918,8 +909,6 @@
       ++i;
       if (i == argc) printInformation();
       else vm->setClasspath(argv[i]);
-    } else if (!(strcmp(cur, "-debug"))) {
-      nyi();
     } else if (!(strncmp(cur, "-D", 2))) {
       uint32 len = strlen(cur);
       if (len == 2) {
@@ -987,7 +976,7 @@
     } else if (!(strcmp(cur, "-verbosegc"))) {
       nyi();
     } else if (!(strcmp(cur, "-verbose:gc"))) {
-      nyi();
+      mvm::Collector::verbose = 1;
     } else if (!(strcmp(cur, "-verbose:jni"))) {
       nyi();
     } else if (!(strcmp(cur, "-version"))) {

Modified: vmkit/trunk/lib/Mvm/GCMmap2/MvmGC.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/GCMmap2/MvmGC.h?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/GCMmap2/MvmGC.h (original)
+++ vmkit/trunk/lib/Mvm/GCMmap2/MvmGC.h Sun Apr 11 12:06:54 2010
@@ -66,7 +66,7 @@
   static bool _enable_maybe;           /* Collection in maybeCollect()? */
   static bool _enable_collection;      /* collection authorized? */
   static int  status;
-  
+ 
   
   enum { stat_collect, stat_alloc, stat_broken };
 
@@ -90,6 +90,8 @@
 
 public:
   static void (*internMemoryError)(unsigned int);
+
+  static int verbose; 
   
   static bool isLive(void* ptr) {
     GCChunkNode *node = o2node(ptr);

Modified: vmkit/trunk/lib/Mvm/GCMmap2/gccollector.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/GCMmap2/gccollector.cpp?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/GCMmap2/gccollector.cpp (original)
+++ vmkit/trunk/lib/Mvm/GCMmap2/gccollector.cpp Sun Apr 11 12:06:54 2010
@@ -29,6 +29,8 @@
 bool Collector::_enable_maybe;
 bool Collector::_enable_collection;
 
+int Collector::verbose = 0;
+
 void Collector::do_collect() {
   GCChunkNode  *cur;
 #ifdef SERVICE

Modified: vmkit/trunk/lib/Mvm/MMTk/MvmGC.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/MMTk/MvmGC.cpp?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/MMTk/MvmGC.cpp (original)
+++ vmkit/trunk/lib/Mvm/MMTk/MvmGC.cpp Sun Apr 11 12:06:54 2010
@@ -17,6 +17,7 @@
 
 static mvm::SpinLock lock;
 std::set<gc*> __InternalSet__;
+int Collector::verbose = 0;
 
 extern "C" void* gcmalloc(uint32_t sz, void* _VT) {
   gc* res = 0;

Modified: vmkit/trunk/lib/Mvm/MMTk/MvmGC.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/MMTk/MvmGC.h?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/MMTk/MvmGC.h (original)
+++ vmkit/trunk/lib/Mvm/MMTk/MvmGC.h Sun Apr 11 12:06:54 2010
@@ -65,6 +65,7 @@
   
 class Collector {
 public:
+  static int verbose;
 
   static uintptr_t TraceLocal;
 

Modified: vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp Sun Apr 11 12:06:54 2010
@@ -18,6 +18,7 @@
 using namespace mvm;
 
 uintptr_t Collector::TraceLocal = 0;
+int Collector::verbose = 0;
 
 extern "C" void* JnJVM_org_mmtk_plan_marksweep_MSMutator_alloc__IIIII(uintptr_t Mutator, int32_t sz, int32_t align, int32_t offset, int32_t allocator, int32_t site) __attribute__((always_inline));
 extern "C" int32_t JnJVM_org_mmtk_plan_MutatorContext_checkAllocator__III(uintptr_t Mutator, int32_t bytes, int32_t align, int32_t allocator) __attribute__((always_inline));

Modified: vmkit/trunk/mmtk/mmtk-j3/Collection.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Collection.cpp?rev=100969&r1=100968&r2=100969&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Collection.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Collection.cpp Sun Apr 11 12:06:54 2010
@@ -60,6 +60,7 @@
 
     // Record the time to GC.
     int64_t elapsedTime = Java_org_j3_mmtk_Statistics_nanoTime__() - startTime;
+
     JnJVM_org_mmtk_utility_heap_HeapGrowthManager_recordGCTime__D(((double)elapsedTime) / 1000000);
 
     // 2 means called by System.gc();
@@ -69,6 +70,13 @@
     JnJVM_org_mmtk_utility_heap_HeapGrowthManager_reset__();
 
     JnJVM_org_mmtk_plan_Plan_collectionComplete__();
+    
+    if (mvm::Collector::verbose > 0) {
+      static int collectionNum = 1;
+      if (why == 2) fprintf(stderr, "[Forced] ");
+      fprintf(stderr, "Collection %d finished in %lld ms.\n", collectionNum++,
+              elapsedTime / 1000000);
+    }
 
     th->MyVM->rendezvous.finishRV();
   





More information about the vmkit-commits mailing list