[vmkit-commits] [vmkit] r109345 - in /vmkit/trunk/mmtk: java/src/org/j3/mmtk/MMTk_Events.java mmtk-j3/ActivePlan.cpp mmtk-j3/MMTk_Events.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Jul 24 10:53:00 PDT 2010


Author: geoffray
Date: Sat Jul 24 12:53:00 2010
New Revision: 109345

URL: http://llvm.org/viewvc/llvm-project?rev=109345&view=rev
Log:
Fix a bug where not all threads were returned by getNextMutator. Also implement MMTk_Events.java.


Added:
    vmkit/trunk/mmtk/mmtk-j3/MMTk_Events.cpp
Modified:
    vmkit/trunk/mmtk/java/src/org/j3/mmtk/MMTk_Events.java
    vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp

Modified: vmkit/trunk/mmtk/java/src/org/j3/mmtk/MMTk_Events.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/java/src/org/j3/mmtk/MMTk_Events.java?rev=109345&r1=109344&r2=109345&view=diff
==============================================================================
--- vmkit/trunk/mmtk/java/src/org/j3/mmtk/MMTk_Events.java (original)
+++ vmkit/trunk/mmtk/java/src/org/j3/mmtk/MMTk_Events.java Sat Jul 24 12:53:00 2010
@@ -21,12 +21,9 @@
 @Uninterruptible
 public class MMTk_Events extends org.mmtk.vm.MMTk_Events {
 
-  public void tracePageAcquired(Space space, Address startAddress, int numPages) {
-  }
+  public native void tracePageAcquired(Space space, Address startAddress, int numPages);
 
-  public void tracePageReleased(Space space, Address startAddress, int numPages) {
-  }
+  public native void tracePageReleased(Space space, Address startAddress, int numPages);
 
-  public void heapSizeChanged(Extent heapSize) {
-  }
+  public native void heapSizeChanged(Extent heapSize);
 }

Modified: vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp?rev=109345&r1=109344&r2=109345&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp Sat Jul 24 12:53:00 2010
@@ -19,24 +19,26 @@
 
 struct ActivePlan {
   JavaObject obj;
-  mvm::MutatorThread* next;
+  mvm::MutatorThread* current;
 };
 
 extern "C" JavaObject* Java_org_j3_mmtk_ActivePlan_getNextMutator__ (ActivePlan* A) {
   assert(A && "No active plan");
   
-  if (A->next == 0) A->next = (mvm::MutatorThread*)JavaThread::get()->MyVM->mainThread;
-  else if (A->next->next() != JavaThread::get()->MyVM->mainThread) {
-    A->next = 0;
-    return 0;
+  if (A->current == NULL) {
+    A->current = (mvm::MutatorThread*)JavaThread::get()->MyVM->mainThread;
+  } else if (A->current->next() == JavaThread::get()->MyVM->mainThread) {
+    A->current = NULL;
+    return NULL;
+  } else {
+    A->current = (mvm::MutatorThread*)A->current->next();
   }
-  else A->next = (mvm::MutatorThread*)A->next->next();
 
-  return (JavaObject*)A->next->MutatorContext;
+  return (JavaObject*)A->current->MutatorContext;
 }
 
 extern "C" void Java_org_j3_mmtk_ActivePlan_resetMutatorIterator__ (ActivePlan* A) {
-  A->next = 0;
+  A->current = NULL;
 }
 
 extern "C" void Java_org_j3_mmtk_ActivePlan_collectorCount__ () { UNIMPLEMENTED(); }

Added: vmkit/trunk/mmtk/mmtk-j3/MMTk_Events.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/MMTk_Events.cpp?rev=109345&view=auto
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/MMTk_Events.cpp (added)
+++ vmkit/trunk/mmtk/mmtk-j3/MMTk_Events.cpp Sat Jul 24 12:53:00 2010
@@ -0,0 +1,37 @@
+//===----- MMTk_Events.cpp - Implementation of the MMTk_Events class  -----===//
+//
+//                              The VMKit project
+//
+// This file is distributed under the University of Illinois Open Source 
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "JavaArray.h"
+#include "JavaClass.h"
+#include "JavaObject.h"
+#include "JavaThread.h"
+#include "MutatorThread.h"
+
+using namespace j3;
+
+extern "C" void Java_org_j3_mmtk_MMTk_1Events_tracePageAcquired__Lorg_mmtk_policy_Space_2Lorg_vmmagic_unboxed_Address_2I(
+    JavaObject* event, JavaObject* space, uintptr_t address, int numPages) {
+#ifdef DEBUG
+  fprintf(stderr, "Pages acquired by thread %p from space %p at %x (%d)\n", (void*)mvm::Thread::get(), (void*)space, address, numPages);
+#endif
+}
+
+extern "C" void Java_org_j3_mmtk_MMTk_1Events_tracePageReleased__Lorg_mmtk_policy_Space_2Lorg_vmmagic_unboxed_Address_2I(
+    JavaObject* event, JavaObject* space, uintptr_t address, int numPages) {
+#ifdef DEBUG
+  fprintf(stderr, "Pages released by thread %p from space %p at %x (%d)\n", (void*)mvm::Thread::get(), (void*)space, address, numPages);
+#endif
+}
+
+extern "C" void Java_org_j3_mmtk_MMTk_1Events_heapSizeChanged__Lorg_vmmagic_unboxed_Extent_2(
+    uintptr_t heapSize) {
+#ifdef DEBUG
+  fprintf(stderr, "New heap size : %d\n", (int)heapSize);
+#endif
+}





More information about the vmkit-commits mailing list