Skip to content

Commit 936b8fc

Browse files
use skipcount and add new tests
1 parent c27627a commit 936b8fc

29 files changed

+246
-34
lines changed

substratevm/mx.substratevm/mx_substratevm.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,6 @@ def native_unittests_task(extra_build_args=None):
545545
out.write(f"Simple file{i}" + '\n')
546546

547547
additional_build_args = svm_experimental_options([
548-
'-H:-JfrTrimInternalStackTraces',
549548
'-H:AdditionalSecurityProviders=com.oracle.svm.test.services.SecurityServiceTest$NoOpProvider',
550549
'-H:AdditionalSecurityServiceTypes=com.oracle.svm.test.services.SecurityServiceTest$JCACompliantNoOpService',
551550
'-cp', cp_entry_name

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/code/FrameSourceInfo.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public Class<?> getSourceClass() {
6868
return sourceClass;
6969
}
7070

71-
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
7271
public String getSourceClassName() {
7372
Class<?> clazz = getSourceClass();
7473
return (clazz != null) ? clazz.getName() : "";

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/JfrEvent.java

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,16 @@
3232
import com.oracle.svm.core.Uninterruptible;
3333
import com.oracle.svm.core.collections.EnumBitmask;
3434
import com.oracle.svm.core.thread.JavaThreads;
35+
import com.oracle.svm.core.VMInspectionOptions;
3536

3637
/**
3738
* This file contains the VM-level events that Native Image supports on all JDK versions. The event
3839
* IDs depend on the JDK version (see metadata.xml file) and are computed at image build time.
3940
*/
4041
public final class JfrEvent {
41-
public static final JfrEvent ThreadStart = create("jdk.ThreadStart");
42+
private static final int defaultInternalSkipCount = VMInspectionOptions.JfrTrimInternalStackTraces.getValue() ? 3 : 0;
43+
44+
public static final JfrEvent ThreadStart = create("jdk.ThreadStart", defaultInternalSkipCount);
4245
public static final JfrEvent ThreadEnd = create("jdk.ThreadEnd");
4346
public static final JfrEvent ThreadCPULoad = create("jdk.ThreadCPULoad");
4447
public static final JfrEvent DataLoss = create("jdk.DataLoss");
@@ -60,41 +63,53 @@ public final class JfrEvent {
6063
public static final JfrEvent SafepointBegin = create("jdk.SafepointBegin", JfrEventFlags.HasDuration);
6164
public static final JfrEvent SafepointEnd = create("jdk.SafepointEnd", JfrEventFlags.HasDuration);
6265
public static final JfrEvent ExecuteVMOperation = create("jdk.ExecuteVMOperation", JfrEventFlags.HasDuration);
63-
public static final JfrEvent JavaMonitorEnter = create("jdk.JavaMonitorEnter", JfrEventFlags.HasDuration);
64-
public static final JfrEvent ThreadPark = create("jdk.ThreadPark", JfrEventFlags.HasDuration);
65-
public static final JfrEvent JavaMonitorWait = create("jdk.JavaMonitorWait", JfrEventFlags.HasDuration);
66-
public static final JfrEvent JavaMonitorInflate = create("jdk.JavaMonitorInflate", JfrEventFlags.HasDuration);
67-
public static final JfrEvent ObjectAllocationInNewTLAB = create("jdk.ObjectAllocationInNewTLAB");
66+
public static final JfrEvent JavaMonitorEnter = create("jdk.JavaMonitorEnter", defaultInternalSkipCount, JfrEventFlags.HasDuration);
67+
public static final JfrEvent ThreadPark = create("jdk.ThreadPark", defaultInternalSkipCount, JfrEventFlags.HasDuration);
68+
public static final JfrEvent JavaMonitorWait = create("jdk.JavaMonitorWait", defaultInternalSkipCount, JfrEventFlags.HasDuration);
69+
public static final JfrEvent JavaMonitorInflate = create("jdk.JavaMonitorInflate", defaultInternalSkipCount, JfrEventFlags.HasDuration);
70+
public static final JfrEvent ObjectAllocationInNewTLAB = create("jdk.ObjectAllocationInNewTLAB", defaultInternalSkipCount);
6871
public static final JfrEvent GCHeapSummary = create("jdk.GCHeapSummary");
6972
public static final JfrEvent ThreadAllocationStatistics = create("jdk.ThreadAllocationStatistics");
70-
public static final JfrEvent SystemGC = create("jdk.SystemGC", JfrEventFlags.HasDuration);
71-
public static final JfrEvent AllocationRequiringGC = create("jdk.AllocationRequiringGC");
72-
public static final JfrEvent OldObjectSample = create("jdk.OldObjectSample");
73-
public static final JfrEvent ObjectAllocationSample = create("jdk.ObjectAllocationSample", JfrEventFlags.SupportsThrottling);
73+
public static final JfrEvent SystemGC = create("jdk.SystemGC", defaultInternalSkipCount, JfrEventFlags.HasDuration);
74+
public static final JfrEvent AllocationRequiringGC = create("jdk.AllocationRequiringGC", defaultInternalSkipCount);
75+
public static final JfrEvent OldObjectSample = create("jdk.OldObjectSample", defaultInternalSkipCount);
76+
public static final JfrEvent ObjectAllocationSample = create("jdk.ObjectAllocationSample", defaultInternalSkipCount, JfrEventFlags.SupportsThrottling);
7477
public static final JfrEvent NativeMemoryUsage = create("jdk.NativeMemoryUsage");
7578
public static final JfrEvent NativeMemoryUsageTotal = create("jdk.NativeMemoryUsageTotal");
7679

7780
private final long id;
7881
private final String name;
7982
private final int flags;
83+
private final int skipCount;
8084

8185
@Platforms(Platform.HOSTED_ONLY.class)
8286
public static JfrEvent create(String name, JfrEventFlags... flags) {
83-
return new JfrEvent(name, flags);
87+
return new JfrEvent(name, 0, flags);
88+
}
89+
90+
@Platforms(Platform.HOSTED_ONLY.class)
91+
public static JfrEvent create(String name, int skipCount, JfrEventFlags... flags) {
92+
return new JfrEvent(name, skipCount, flags);
8493
}
8594

8695
@Platforms(Platform.HOSTED_ONLY.class)
87-
private JfrEvent(String name, JfrEventFlags... flags) {
96+
private JfrEvent(String name, int skipCount, JfrEventFlags... flags) {
8897
this.id = JfrMetadataTypeLibrary.lookupPlatformEvent(name);
8998
this.name = name;
9099
this.flags = EnumBitmask.computeBitmask(flags);
100+
this.skipCount = skipCount;
91101
}
92102

93103
@Uninterruptible(reason = CALLED_FROM_UNINTERRUPTIBLE_CODE, mayBeInlined = true)
94104
public long getId() {
95105
return id;
96106
}
97107

108+
@Uninterruptible(reason = CALLED_FROM_UNINTERRUPTIBLE_CODE, mayBeInlined = true)
109+
public int getSkipCount() {
110+
return skipCount;
111+
}
112+
98113
@Uninterruptible(reason = CALLED_FROM_UNINTERRUPTIBLE_CODE, mayBeInlined = true)
99114
public String getName() {
100115
return name;

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/JfrManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public static RuntimeSupport.Hook initializationHook() {
8484
public static RuntimeSupport.Hook startupHook() {
8585
return isFirstIsolate -> {
8686
periodicEventSetup();
87+
8788
boolean startRecording = SubstrateOptions.FlightRecorder.getValue() || !SubstrateOptions.StartFlightRecording.getValue().isEmpty();
8889
if (startRecording) {
8990
initRecording();

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/SubstrateJVM.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,8 @@ public long getStackTraceId(int skipCount) {
293293
}
294294

295295
@Uninterruptible(reason = "Result is only valid until epoch changes.", callerMustBe = true)
296-
public long getStackTraceId(JfrEvent eventType, int skipCount) {
297-
return getStackTraceId(eventType.getId(), skipCount);
296+
public long getStackTraceId(JfrEvent eventType) {
297+
return getStackTraceId(eventType.getId(), eventType.getSkipCount());
298298
}
299299

300300
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private static void emit0(UnsignedWord gcId, UnsignedWord size) {
5454
JfrNativeEventWriter.beginSmallEvent(data, JfrEvent.AllocationRequiringGC);
5555
JfrNativeEventWriter.putLong(data, JfrTicks.elapsedTicks());
5656
JfrNativeEventWriter.putEventThread(data);
57-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.AllocationRequiringGC, 0));
57+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.AllocationRequiringGC));
5858
JfrNativeEventWriter.putLong(data, gcId.rawValue());
5959
JfrNativeEventWriter.putLong(data, size.rawValue());
6060
JfrNativeEventWriter.endSmallEvent(data);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public static void emit0(Object obj, long previousOwnerTid, long startTicks) {
5656
JfrNativeEventWriter.putLong(data, startTicks);
5757
JfrNativeEventWriter.putLong(data, duration);
5858
JfrNativeEventWriter.putEventThread(data);
59-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorEnter, 0));
59+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorEnter));
6060
JfrNativeEventWriter.putClass(data, obj.getClass());
6161
JfrNativeEventWriter.putLong(data, previousOwnerTid);
6262
JfrNativeEventWriter.putLong(data, Word.objectToUntrackedPointer(obj).rawValue());

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public static void emit0(Object obj, long startTicks, MonitorInflationCause caus
5757
JfrNativeEventWriter.putLong(data, startTicks);
5858
JfrNativeEventWriter.putLong(data, duration);
5959
JfrNativeEventWriter.putEventThread(data);
60-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorInflate, 0));
60+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorInflate));
6161
JfrNativeEventWriter.putClass(data, obj.getClass());
6262
JfrNativeEventWriter.putLong(data, Word.objectToUntrackedPointer(obj).rawValue());
6363
JfrNativeEventWriter.putLong(data, getId(cause));

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ private static void emit0(long startTicks, Object obj, long notifier, long timeo
5858
JfrNativeEventWriter.putLong(data, startTicks);
5959
JfrNativeEventWriter.putLong(data, duration);
6060
JfrNativeEventWriter.putEventThread(data);
61-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorWait, 0));
61+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.JavaMonitorWait));
6262
JfrNativeEventWriter.putClass(data, obj.getClass());
6363
JfrNativeEventWriter.putLong(data, notifier);
6464
JfrNativeEventWriter.putLong(data, timeout);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private static void emitObjectAllocationInNewTLAB(long startTicks, DynamicHub hu
6868
JfrNativeEventWriter.beginSmallEvent(data, JfrEvent.ObjectAllocationInNewTLAB);
6969
JfrNativeEventWriter.putLong(data, startTicks);
7070
JfrNativeEventWriter.putEventThread(data);
71-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ObjectAllocationInNewTLAB, 0));
71+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ObjectAllocationInNewTLAB));
7272
JfrNativeEventWriter.putClass(data, DynamicHub.toClass(hub));
7373
JfrNativeEventWriter.putLong(data, allocationSize.rawValue());
7474
JfrNativeEventWriter.putLong(data, tlabSize.rawValue());
@@ -88,7 +88,7 @@ private static void emitObjectAllocationSample(long startTicks, DynamicHub hub)
8888
JfrNativeEventWriter.beginSmallEvent(data, JfrEvent.ObjectAllocationSample);
8989
JfrNativeEventWriter.putLong(data, startTicks);
9090
JfrNativeEventWriter.putEventThread(data);
91-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ObjectAllocationSample, 0));
91+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ObjectAllocationSample));
9292
JfrNativeEventWriter.putClass(data, DynamicHub.toClass(hub));
9393
JfrNativeEventWriter.putLong(data, weight);
9494
JfrNativeEventWriter.endSmallEvent(data);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static void emit0(long startTicks, boolean invokedConcurrent) {
5555
JfrNativeEventWriter.putLong(data, startTicks);
5656
JfrNativeEventWriter.putLong(data, duration);
5757
JfrNativeEventWriter.putEventThread(data);
58-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.SystemGC, 0));
58+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.SystemGC));
5959
JfrNativeEventWriter.putBoolean(data, invokedConcurrent);
6060
JfrNativeEventWriter.endSmallEvent(data);
6161
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private static void emit0(long startTicks, Object obj, boolean isAbsolute, long
6868
JfrNativeEventWriter.putLong(data, startTicks);
6969
JfrNativeEventWriter.putLong(data, duration);
7070
JfrNativeEventWriter.putEventThread(data);
71-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ThreadPark, 0));
71+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ThreadPark));
7272
JfrNativeEventWriter.putClass(data, parkedClass);
7373
JfrNativeEventWriter.putLong(data, timeout);
7474
JfrNativeEventWriter.putLong(data, until);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static void emit(Thread thread) {
4545
JfrNativeEventWriter.beginSmallEvent(data, JfrEvent.ThreadStart);
4646
JfrNativeEventWriter.putLong(data, JfrTicks.elapsedTicks());
4747
JfrNativeEventWriter.putEventThread(data);
48-
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ThreadStart, 0));
48+
JfrNativeEventWriter.putLong(data, SubstrateJVM.get().getStackTraceId(JfrEvent.ThreadStart));
4949
JfrNativeEventWriter.putThread(data, thread);
5050
JfrNativeEventWriter.putLong(data, JavaThreads.getParentThreadId(thread));
5151
JfrNativeEventWriter.endSmallEvent(data);

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/oldobject/JfrOldObjectSampler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ private void release(JfrOldObject sample) {
148148
private void store(Object obj, UnsignedWord span, UnsignedWord allocatedSize, int arrayLength) {
149149
Thread thread = JavaThreads.getCurrentThreadOrNull();
150150
long threadId = thread == null ? 0L : JavaThreads.getThreadId(thread);
151-
long stackTraceId = thread == null ? 0L : SubstrateJVM.get().getStackTraceId(JfrEvent.OldObjectSample, 0);
151+
long stackTraceId = thread == null ? 0L : SubstrateJVM.get().getStackTraceId(JfrEvent.OldObjectSample);
152152
UnsignedWord heapUsedAfterLastGC = Heap.getHeap().getUsedMemoryAfterLastGC();
153153

154154
JfrOldObject sample = (JfrOldObject) freeList.pop();

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/sampler/SamplerJfrStackTraceSerializer.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import com.oracle.svm.core.code.CodeInfoTable;
3939
import com.oracle.svm.core.code.FrameInfoQueryResult;
4040
import com.oracle.svm.core.code.UntetheredCodeInfo;
41-
import com.oracle.svm.core.jdk.UninterruptibleUtils;
4241
import com.oracle.svm.core.jfr.JfrBuffer;
4342
import com.oracle.svm.core.jfr.JfrFrameType;
4443
import com.oracle.svm.core.jfr.JfrNativeEventWriter;
@@ -49,7 +48,6 @@
4948
import com.oracle.svm.core.jfr.SubstrateJVM;
5049
import com.oracle.svm.core.jfr.events.ExecutionSampleEvent;
5150
import com.oracle.svm.core.util.VMError;
52-
import com.oracle.svm.core.VMInspectionOptions;
5351

5452
/**
5553
* A concrete implementation of {@link SamplerStackTraceSerializer} designed for JFR stack trace
@@ -58,7 +56,6 @@
5856
public final class SamplerJfrStackTraceSerializer implements SamplerStackTraceSerializer {
5957
/** This value is used by multiple threads but only by a single thread at a time. */
6058
private static final CodeInfoDecoder.FrameInfoCursor FRAME_INFO_CURSOR = new CodeInfoDecoder.FrameInfoCursor();
61-
private static final String SUBSTRATEVM_PREFIX = "com.oracle.svm";
6259

6360
@Override
6461
@Uninterruptible(reason = "Prevent JFR recording and epoch change.")
@@ -170,12 +167,8 @@ private static int visitFrame(JfrNativeEventWriterData data, CodeInfo codeInfo,
170167
int numStackTraceElements = 0;
171168
FRAME_INFO_CURSOR.initialize(codeInfo, ip, false);
172169
while (FRAME_INFO_CURSOR.advance()) {
173-
FrameInfoQueryResult frame = FRAME_INFO_CURSOR.get();
174-
if (VMInspectionOptions.JfrTrimInternalStackTraces.getValue() &&
175-
UninterruptibleUtils.String.startsWith(frame.getSourceClassName(), SUBSTRATEVM_PREFIX)) {
176-
continue;
177-
}
178170
if (data.isNonNull()) {
171+
FrameInfoQueryResult frame = FRAME_INFO_CURSOR.get();
179172
serializeStackTraceElement(data, frame);
180173
}
181174
numStackTraceElements++;

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/JfrRecordingTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,19 @@
3131
import java.time.Duration;
3232
import java.util.Collections;
3333
import java.util.IdentityHashMap;
34+
import java.util.List;
3435
import java.util.Map;
3536
import java.util.Map.Entry;
3637

38+
import jdk.jfr.consumer.RecordedEvent;
39+
import jdk.jfr.consumer.RecordedFrame;
3740
import org.junit.After;
3841

3942
import jdk.jfr.Configuration;
4043
import jdk.jfr.Recording;
4144

45+
import static org.junit.Assert.assertTrue;
46+
4247
/** Base class for JFR unit tests. */
4348
public abstract class JfrRecordingTest extends AbstractJfrTest {
4449
private final Map<Recording, JfrRecordingState> recordingStates = Collections.synchronizedMap(new IdentityHashMap<>());
@@ -83,6 +88,12 @@ protected Recording prepareRecording(String[] events, Configuration config, Map<
8388
return recording;
8489
}
8590

91+
protected static void checkStackTraceTrimming(RecordedEvent event, String methodName) {
92+
List<RecordedFrame> frames = event.getStackTrace().getFrames();
93+
assertTrue(frames.size() > 0);
94+
assertTrue(frames.getFirst().getMethod().getName().equals(methodName));
95+
}
96+
8697
private static Recording createRecording(Configuration config) {
8798
if (config == null) {
8899
return new Recording();

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestAllocationRequiringGCEvent.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ public void test() throws Throwable {
5454

5555
private static void validateEvents(List<RecordedEvent> events) {
5656
assertTrue(events.size() > 0);
57+
for (RecordedEvent event : events) {
58+
checkStackTraceTrimming(event, "emit");
59+
}
5760
}
5861

5962
@NeverInline("Prevent escape analysis.")

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorEnterEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ private void validateEvents(List<RecordedEvent> events) {
9090
found = true;
9191
break;
9292
}
93+
94+
checkStackTraceTrimming(event, "emit");
9395
}
9496
assertTrue("Expected monitor blocked event not found", found);
9597
}

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorInflateEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ private void validateEvents(List<RecordedEvent> events) {
9090
(eventThread.equals(firstThread.getName()) || eventThread.equals(secondThread.getName()))) {
9191
foundCauseEnter = true;
9292
}
93+
94+
checkStackTraceTrimming(event, "emit");
9395
}
9496
assertTrue("Expected monitor inflate event not found.", foundCauseEnter);
9597
}

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorWaitEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ private void validateEvents(List<RecordedEvent> events) {
113113
assertEquals("Wrong notifier", notifThread, producerName);
114114
}
115115
lastEventThreadName = eventThread;
116+
117+
checkStackTraceTrimming(event, "emit");
116118
}
117119
assertFalse("Wrong number of events: " + prodCount + " " + consCount,
118120
abs(prodCount - consCount) > 1 || abs(consCount - COUNT) > 1);

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorWaitInterruptEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ private void validateEvents(List<RecordedEvent> events) {
139139
assertEquals("Notifier of simple wait is incorrect: " + notifThread + " " + simpleNotifyThread.getName(), notifThread, simpleNotifyThread.getName());
140140
simpleWaitFound = true;
141141
}
142+
143+
checkStackTraceTrimming(event, "emit");
142144
}
143145
assertTrue("Couldn't find expected wait events. SimpleWaiter: " + simpleWaitFound + " interrupted: " + interruptedFound,
144146
simpleWaitFound && interruptedFound);

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorWaitNotifyAllEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ private void validateEvents(List<RecordedEvent> events) {
108108
waitersFound++;
109109
}
110110

111+
checkStackTraceTrimming(event, "emit");
111112
}
112113
assertTrue("Couldn't find expected wait events. NotifierFound: " + notifierFound + " waitersFound: " + waitersFound,
113114
notifierFound && waitersFound == 2);

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestJavaMonitorWaitTimeoutEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ private void validateEvents(List<RecordedEvent> events) {
134134
simpleWaitFound = true;
135135
}
136136

137+
checkStackTraceTrimming(event, "emit");
137138
}
138139
assertTrue("Couldn't find expected wait events. SimpleWaiter: " + simpleWaitFound + " timeout: " + timeoutFound,
139140
simpleWaitFound && timeoutFound);

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/TestObjectAllocationInNewTLABEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ private static void validateEvents(List<RecordedEvent> events) {
100100
} else if (tlabSize == alignedHeapChunkSize && className.equals(Helper.class.getName())) {
101101
foundInstance = true;
102102
}
103+
104+
checkStackTraceTrimming(event, "emit");
103105
}
104106

105107
assertTrue(foundBigCharArray);

0 commit comments

Comments
 (0)