Skip to content

Commit 3ee246d

Browse files
add address
1 parent 804754c commit 3ee246d

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/events/JavaMonitorEnterEvent.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@
1616
public class JavaMonitorEnterEvent {
1717

1818
@Uninterruptible(reason = "Accesses a JFR buffer.")
19-
public static void emit(Object obj, org.graalvm.nativeimage.IsolateThread previousOwner, long addr, long startTicks) {
20-
emit(obj, com.oracle.svm.core.jfr.SubstrateJVM.get().getThreadId(previousOwner), addr, startTicks);
19+
public static void emit(Object obj, org.graalvm.nativeimage.IsolateThread previousOwner,long startTicks) {
20+
emit(obj, com.oracle.svm.core.jfr.SubstrateJVM.get().getThreadId(previousOwner), startTicks);
2121
}
2222
@Uninterruptible(reason = "Accesses a JFR buffer.")
23-
public static void emit(Object obj, long previousOwner, long addr, long startTicks) {
23+
public static void emit(Object obj, long previousOwner, long startTicks) {
2424
if (SubstrateJVM.isRecording() && SubstrateJVM.get().isEnabled(JfrEvent.JavaMonitorEnter)) {
2525
JfrNativeEventWriterData data = StackValue.get(JfrNativeEventWriterData.class);
2626
JfrNativeEventWriterDataAccess.initializeThreadLocalNativeBuffer(data);
2727

28-
if (emit0(data, obj, previousOwner, addr, startTicks, SubstrateJVM.get().isLarge(JfrEvent.JavaMonitorEnter)) == com.oracle.svm.core.jfr.JfrEventWriteStatus.RetryLarge) {
28+
if (emit0(data, obj, previousOwner, startTicks, SubstrateJVM.get().isLarge(JfrEvent.JavaMonitorEnter)) == com.oracle.svm.core.jfr.JfrEventWriteStatus.RetryLarge) {
2929
SubstrateJVM.get().setLarge(JfrEvent.JavaMonitorEnter, true);
30-
emit0(data, obj, previousOwner, addr, startTicks, true);
30+
emit0(data, obj, previousOwner, startTicks, true);
3131
}
3232
}
3333
}
3434
@Uninterruptible(reason = "Accesses a JFR buffer.")
35-
private static com.oracle.svm.core.jfr.JfrEventWriteStatus emit0(JfrNativeEventWriterData data, Object obj, long previousOwner, long addr, long startTicks, boolean isLarge){
35+
private static com.oracle.svm.core.jfr.JfrEventWriteStatus emit0(JfrNativeEventWriterData data, Object obj, long previousOwner, long startTicks, boolean isLarge){
3636
JfrNativeEventWriter.beginEvent(data, JfrEvent.JavaMonitorEnter, isLarge);
3737

3838
JfrNativeEventWriter.putLong(data, startTicks);
@@ -41,7 +41,7 @@ private static com.oracle.svm.core.jfr.JfrEventWriteStatus emit0(JfrNativeEventW
4141
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ThreadStart.getId(), 0));
4242
JfrNativeEventWriter.putClass(data, obj.getClass());
4343
JfrNativeEventWriter.putLong(data, previousOwner);
44-
JfrNativeEventWriter.putLong(data, addr);
44+
JfrNativeEventWriter.putLong(data, org.graalvm.compiler.word.Word.objectToUntrackedPointer(obj).rawValue());
4545

4646
return JfrNativeEventWriter.endEvent(data, isLarge);
4747
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/monitor/MultiThreadedMonitorSupport.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@
3737
import org.graalvm.compiler.core.common.SuppressFBWarnings;
3838
import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
3939
import org.graalvm.compiler.word.BarrieredAccess;
40+
import org.graalvm.compiler.word.Word;
4041
import org.graalvm.nativeimage.Platform;
4142
import org.graalvm.nativeimage.Platforms;
43+
import org.graalvm.nativeimage.CurrentIsolate;
4244

4345
import com.oracle.svm.core.SubstrateUtil;
4446
import com.oracle.svm.core.WeakIdentityHashMap;
@@ -265,7 +267,7 @@ public void monitorEnter(Object obj) {
265267
// prevent recursive manipulation of the monitorOwners lock
266268
if (monitorOwnersLock.isHeldByCurrentThread()) return;
267269
Long prevOwner;
268-
long currentOwnerId = com.oracle.svm.core.jfr.SubstrateJVM.get().getThreadId(org.graalvm.nativeimage.CurrentIsolate.getCurrentThread());
270+
long currentOwnerId = com.oracle.svm.core.jfr.SubstrateJVM.get().getThreadId(CurrentIsolate.getCurrentThread());
269271

270272
monitorOwnersLock.lock();
271273
try {
@@ -275,8 +277,7 @@ public void monitorEnter(Object obj) {
275277
monitorOwnersLock.unlock();
276278
}
277279
if ( prevOwner==null ) prevOwner = 0L;
278-
JavaMonitorEnterEvent.emit(obj,prevOwner,0, startTicks);//not able to get address because its implemented in native code in Hotspot
279-
280+
JavaMonitorEnterEvent.emit(obj,prevOwner, startTicks);
280281
}
281282

282283
@SubstrateForeignCallTarget(stubCallingConvention = false)

0 commit comments

Comments
 (0)