Skip to content

Commit fc7f20d

Browse files
committed
[GR-60343] Add change tracking for AdaptiveCollectionPolicy.
PullRequest: graal/19528
2 parents 6ffde64 + 305e44d commit fc7f20d

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

substratevm/src/com.oracle.svm.core.genscavenge/src/com/oracle/svm/core/genscavenge/AdaptiveCollectionPolicy.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import com.oracle.svm.core.Uninterruptible;
3333
import com.oracle.svm.core.heap.GCCause;
34+
import com.oracle.svm.core.util.BasedOnJDKFile;
3435
import com.oracle.svm.core.util.TimeUtils;
3536
import com.oracle.svm.core.util.UnsignedUtils;
3637

@@ -42,6 +43,13 @@
4243
* its base class {@code AdaptiveSizePolicy}. Method and variable names have been kept mostly the
4344
* same for comparability.
4445
*/
46+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp")
47+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/shared/adaptiveSizePolicy.cpp")
48+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.hpp")
49+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.cpp")
50+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/parallel/psParallelCompact.cpp#L951-L1174")
51+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/parallel/psScavenge.cpp#L321-L639")
52+
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+1/src/hotspot/share/gc/shared/gc_globals.hpp#L308-L420")
4553
class AdaptiveCollectionPolicy extends AbstractCollectionPolicy {
4654

4755
/*
@@ -152,7 +160,7 @@ public String getName() {
152160
}
153161

154162
@Override
155-
public boolean shouldCollectCompletely(boolean followingIncrementalCollection) { // should_{attempt_scavenge,full_GC}
163+
public boolean shouldCollectCompletely(boolean followingIncrementalCollection) { // should_attempt_scavenge
156164
guaranteeSizeParametersInitialized();
157165

158166
if (!followingIncrementalCollection && shouldCollectYoungGenSeparately(!SerialGCOptions.useCompactingOldGen())) {
@@ -182,17 +190,7 @@ public boolean shouldCollectCompletely(boolean followingIncrementalCollection) {
182190
return true;
183191
}
184192

185-
UnsignedWord youngUsed = HeapImpl.getHeapImpl().getYoungGeneration().getChunkBytes();
186-
UnsignedWord oldUsed = HeapImpl.getHeapImpl().getOldGeneration().getChunkBytes();
187-
188-
/*
189-
* If the remaining free space in the old generation is less than what is expected to be
190-
* needed by the next collection, do a full collection now.
191-
*/
192-
UnsignedWord averagePromoted = UnsignedUtils.fromDouble(avgPromoted.getPaddedAverage());
193-
UnsignedWord promotionEstimate = UnsignedUtils.min(averagePromoted, youngUsed);
194-
UnsignedWord oldFree = oldSize.subtract(oldUsed);
195-
return promotionEstimate.aboveThan(oldFree);
193+
return false;
196194
}
197195

198196
private void updateAverages(boolean isSurvivorOverflow, UnsignedWord survivedChunkBytes, UnsignedWord promotedChunkBytes) {

0 commit comments

Comments
 (0)