Skip to content

Commit 3730241

Browse files
committed
Debug
Signed-off-by: lhu <linhu@ca.ibm.com>
1 parent 84377b3 commit 3730241

5 files changed

+35
-4
lines changed

runtime/gc_base/IndexableObjectAllocationModel.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,11 @@ MM_IndexableObjectAllocationModel::getSparseAddressAndDecommitLeaves(MM_Environm
389389

390390
byteAmount = _dataSize;
391391
void *virtualLargeObjectHeapAddress = extensions->largeObjectVirtualMemory->allocateSparseFreeEntryAndMapToHeapObject(spine, byteAmount);
392+
393+
PORT_ACCESS_FROM_ENVIRONMENT(env);
394+
j9tty_printf(PORTLIB, "allocateSparseFreeEntryAndMapToHeapObject spine=%p, byteAmount=%zu\n", spine, byteAmount);
395+
396+
392397
if (NULL != virtualLargeObjectHeapAddress) {
393398
indexableObjectModel->setDataAddrForContiguous((J9IndexableObject *)spine, virtualLargeObjectHeapAddress);
394399
} else {

runtime/gc_vlhgc/CopyForwardScheme.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4172,6 +4172,10 @@ class MM_CopyForwardSchemeRootClearer : public MM_RootScanner
41724172
env->_copyForwardStats._offHeapRegionsCleared += 1;
41734173
void *dataAddr = _extensions->indexableObjectModel.getDataAddrForContiguous((J9IndexableObject *)objectPtr);
41744174
_extensions->largeObjectVirtualMemory->freeSparseRegionAndUnmapFromHeapObject(_env, dataAddr, objectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)objectPtr));
4175+
4176+
PORT_ACCESS_FROM_ENVIRONMENT(env);
4177+
j9tty_printf(PORTLIB, "doObjectInVirtualLargeObjectHeap-copyf freeSparseRegionAndUnmapFromHeapObject objectPtr=%p, byteAmount=%zu\n", objectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)objectPtr));
4178+
41754179
} else {
41764180
void *dataAddr = _extensions->indexableObjectModel.getDataAddrForContiguous((J9IndexableObject *)fwdOjectPtr);
41774181
if (NULL != dataAddr) {
@@ -4184,6 +4188,10 @@ class MM_CopyForwardSchemeRootClearer : public MM_RootScanner
41844188
_extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)fwdOjectPtr),
41854189
fwdOjectPtr
41864190
);
4191+
4192+
PORT_ACCESS_FROM_ENVIRONMENT(env);
4193+
j9tty_printf(PORTLIB, "doObjectInVirtualLargeObjectHeap-copyf updateSparseDataEntryAfterObjectHasMoved objectPtr=%p, fwdOjectPtr=%p, byteAmount=%zu\n", objectPtr, fwdOjectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)fwdOjectPtr));
4194+
41874195
}
41884196
}
41894197
}

runtime/gc_vlhgc/GlobalMarkingScheme.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,6 +1420,10 @@ class MM_GlobalMarkingSchemeRootClearer : public MM_RootScanner
14201420
void *dataAddr = _extensions->indexableObjectModel.getDataAddrForContiguous((J9IndexableObject *)objectPtr);
14211421
if (NULL != dataAddr) {
14221422
_extensions->largeObjectVirtualMemory->freeSparseRegionAndUnmapFromHeapObject(_env, dataAddr, objectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)objectPtr));
1423+
1424+
PORT_ACCESS_FROM_ENVIRONMENT(env);
1425+
j9tty_printf(PORTLIB, "doObjectInVirtualLargeObjectHeap-global freeSparseRegionAndUnmapFromHeapObject objectPtr=%p, byteAmount=%zu\n", objectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)objectPtr));
1426+
14231427
}
14241428
}
14251429
}

runtime/gc_vlhgc/ParallelSweepSchemeVLHGC.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,10 +1029,20 @@ MM_ParallelSweepSchemeVLHGC::recycleFreeRegions(MM_EnvironmentVLHGC *env)
10291029
sparseDataEntry = (MM_SparseDataTableEntry *)hashTableNextDo(&walkState);
10301030
}
10311031

1032-
while ((arrayletLeafCount > 0) && (NULL != (region = regionIterator.nextRegion()))) {
1033-
if (region->isArrayletLeaf()) {
1032+
while (NULL != (region = regionIterator.nextRegion())) {
1033+
if (region->isArrayletLeaf() && (arrayletLeafCount > 0)) {
10341034
region->getSubSpace()->recycleRegion(env, region);
10351035
arrayletLeafCount -= 1;
1036+
} else if (!region->_sweepData._alreadySwept && region->hasValidMarkMap()) {
1037+
MM_MemoryPool *regionPool = region->getMemoryPool();
1038+
Assert_MM_true(NULL != regionPool);
1039+
/* recycle if empty */
1040+
if (region->getSize() == regionPool->getActualFreeMemorySize()) {
1041+
Assert_MM_true(NULL == region->_allocateData.getSpine());
1042+
Assert_MM_true(NULL == region->_allocateData.getNextArrayletLeafRegion());
1043+
region->getSubSpace()->recycleRegion(env, region);
1044+
}
1045+
10361046
}
10371047
}
10381048
Assert_MM_true(0 == arrayletLeafCount);

runtime/gc_vlhgc/WriteOnceCompactor.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,7 +1613,7 @@ MM_WriteOnceCompactor::flushRememberedSetIntoCardTable(MM_EnvironmentVLHGC *env)
16131613
void
16141614
MM_WriteOnceCompactor::tagArrayletLeafRegionsForFixup(MM_EnvironmentVLHGC *env)
16151615
{
1616-
if (!_extensions->isVirtualLargeObjectHeapEnabled) {
1616+
// if (!_extensions->isVirtualLargeObjectHeapEnabled) {
16171617
GC_HeapRegionIteratorVLHGC regionIterator(_regionManager);
16181618
MM_HeapRegionDescriptorVLHGC *region = NULL;
16191619
while (NULL != (region = regionIterator.nextRegion())) {
@@ -1651,7 +1651,7 @@ MM_WriteOnceCompactor::tagArrayletLeafRegionsForFixup(MM_EnvironmentVLHGC *env)
16511651
}
16521652
}
16531653
}
1654-
}
1654+
// }
16551655
}
16561656

16571657
class MM_WriteOnceCompactFixupRoots : public MM_RootScanner {
@@ -1731,6 +1731,10 @@ class MM_WriteOnceCompactFixupRoots : public MM_RootScanner {
17311731
* failure (reason why this GC cycle is happening).
17321732
*/
17331733
_extensions->largeObjectVirtualMemory->updateSparseDataEntryAfterObjectHasMoved(dataAddr, objectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)fwdOjectPtr), fwdOjectPtr);
1734+
1735+
PORT_ACCESS_FROM_ENVIRONMENT(env);
1736+
j9tty_printf(PORTLIB, "doObjectInVirtualLargeObjectHeap-Compactor updateSparseDataEntryAfterObjectHasMoved objectPtr=%p, fwdOjectPtr=%p, byteAmount=%zu\n", objectPtr, fwdOjectPtr, _extensions->indexableObjectModel.getDataSizeInBytes((J9IndexableObject *)fwdOjectPtr));
1737+
17341738
}
17351739
}
17361740
}

0 commit comments

Comments
 (0)