[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