Skip to content

Commit f8bcc26

Browse files
authored
Merge pull request #22180 from adpopescu/jfr-gc-events
Modify scavenger GC count
2 parents fee0a52 + 6120488 commit f8bcc26

File tree

6 files changed

+9
-39
lines changed

6 files changed

+9
-39
lines changed

runtime/gc_base/modronapi.cpp

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,38 +1000,7 @@ UDATA
10001000
j9gc_get_unique_GC_count(J9JavaVM *javaVM)
10011001
{
10021002
MM_GCExtensions *extensions = MM_GCExtensions::getExtensions(javaVM);
1003-
OMR_VM *omrVm = javaVM->omrVM;
1004-
UDATA result = 0;
1005-
1006-
switch (omrVm->gcPolicy) {
1007-
case OMR_GC_POLICY_OPTTHRUPUT:
1008-
case OMR_GC_POLICY_OPTAVGPAUSE:
1009-
case OMR_GC_POLICY_METRONOME:
1010-
result = extensions->globalGCStats.gcCount;
1011-
break;
1012-
1013-
case OMR_GC_POLICY_GENCON:
1014-
result = extensions->globalGCStats.gcCount;
1015-
#if defined(OMR_GC_MODRON_SCAVENGER)
1016-
result += extensions->scavengerStats._gcCount;
1017-
#endif
1018-
break;
1019-
1020-
case OMR_GC_POLICY_BALANCED:
1021-
#if defined(OMR_GC_VLHGC)
1022-
result = extensions->globalVLHGCStats.gcCount;
1023-
#endif
1024-
break;
1025-
1026-
case OMR_GC_POLICY_NOGC:
1027-
break;
1028-
1029-
default :
1030-
/* Unknown GC policy */
1031-
Assert_MM_unreachable();
1032-
break;
1033-
}
1034-
return result;
1003+
return extensions->getUniqueGCCycleCount();
10351004
}
10361005

10371006
/**

runtime/gc_glue_java/ScavengerDelegate.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ MM_ScavengerDelegate::mainSetupForGC(MM_EnvironmentBase * envBase)
196196

197197
/* Sort all hot fields for all classes if scavenger dynamicBreadthFirstScanOrdering is enabled */
198198
if (MM_GCExtensions::OMR_GC_SCAVENGER_SCANORDERING_DYNAMIC_BREADTH_FIRST == _extensions->scavengerScanOrdering) {
199-
MM_HotFieldUtil::sortAllHotFieldData(_javaVM, _extensions->scavengerStats._gcCount);
199+
MM_HotFieldUtil::sortAllHotFieldData(_javaVM, _extensions->incrementScavengerStats._gcCount);
200200
}
201201

202202
return;

runtime/gc_trace/TgcConcurrent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ tgcHookConcurrentBackgroundThreadActivated(J9HookInterface** hook, UDATA eventNu
4848

4949
concurrentExtensions->gcCountAtBackgroundThreadActivation =
5050
#if defined(J9VM_GC_MODRON_SCAVENGER)
51-
extensions->scavengerStats._gcCount +
51+
extensions->incrementScavengerStats._gcCount +
5252
#endif /* J9VM_GC_MODRON_SCAVENGER */
5353
extensions->globalGCStats.gcCount;
5454

runtime/gc_trace/TgcConcurrentcardcleaning.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ tgcHookCardCleaningComplete(J9HookInterface** hook, UDATA eventNum, void* eventD
5555

5656
tgcExtensions->printf("Card cleaning for GC(%zu)\n",
5757
#if defined(J9VM_GC_MODRON_SCAVENGER)
58-
extensions->scavengerStats._gcCount +
58+
extensions->incrementScavengerStats._gcCount +
5959
#endif /* J9VM_GC_MODRON_SCAVENGER */
6060
extensions->globalGCStats.gcCount +
6161
1

runtime/gc_trace/TgcDump.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ tgcHookGlobalGcSweepEnd(J9HookInterface** hook, UDATA eventNum, void* eventData,
6161
gcCount = extensions->globalGCStats.gcCount;
6262
if (extensions->isStandardGC()) {
6363
#if defined(J9VM_GC_MODRON_SCAVENGER)
64-
gcCount += extensions->scavengerStats._gcCount;
64+
gcCount += j9gc_get_unique_GC_count(javaVM);
6565
#endif /* J9VM_GC_MODRON_SCAVENGER */
6666
}
6767
#endif /* J9VM_GC_MODRON_STANDARD || J9VM_GC_REALTIME */

runtime/gc_trace/TgcParallel.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ tgcHookLocalGcEnd(J9HookInterface** hook, uintptr_t eventNum, void* eventData, v
241241
{
242242
MM_LocalGCEndEvent* event = (MM_LocalGCEndEvent*)eventData;
243243
J9VMThread* vmThread = (J9VMThread*)event->currentThread->_language_vmthread;
244-
MM_GCExtensions *extensions = MM_GCExtensions::getExtensions(vmThread->javaVM);
244+
J9JavaVM* javaVM = vmThread->javaVM;
245+
MM_GCExtensions *extensions = MM_GCExtensions::getExtensions(javaVM);
245246
MM_TgcExtensions *tgcExtensions = MM_TgcExtensions::getExtensions(extensions);
246247

247248
J9VMThread *walkThread;
@@ -259,15 +260,15 @@ tgcHookLocalGcEnd(J9HookInterface** hook, uintptr_t eventNum, void* eventData, v
259260
tgcExtensions->printf(" (micros) (micros) freelist freelist scanlist scanlist lock arrays arraysize copycache lists deep objs list\n");
260261

261262
scavengeTotalTime = event->incrementEndTime - event->incrementStartTime;
262-
uintptr_t gcCount = extensions->scavengerStats._gcCount;
263+
uintptr_t gcCount = j9gc_get_unique_GC_count(javaVM);
263264

264265
GC_VMThreadListIterator scavengeThreadListIterator(vmThread);
265266
while ((walkThread = scavengeThreadListIterator.nextVMThread()) != NULL) {
266267
/* TODO: Are we guaranteed to get the threads in the right order? */
267268
MM_EnvironmentBase *env = MM_EnvironmentBase::getEnvironment(walkThread->omrVMThread);
268269
if ((walkThread == vmThread) || (env->getThreadType() == GC_WORKER_THREAD)) {
269270
/* check if this thread participated in the GC */
270-
if (env->_scavengerStats._gcCount == extensions->scavengerStats._gcCount) {
271+
if (env->_scavengerStats._gcCount == extensions->incrementScavengerStats._gcCount) {
271272
intptr_t avgArraySplitAmount = 0;
272273
if (0 != env->_scavengerStats._arraySplitCount) {
273274
avgArraySplitAmount = env->_scavengerStats._arraySplitAmount / env->_scavengerStats._arraySplitCount;

0 commit comments

Comments
 (0)