[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