|
31 | 31 |
|
32 | 32 | import com.oracle.svm.core.Uninterruptible;
|
33 | 33 | import com.oracle.svm.core.heap.GCCause;
|
| 34 | +import com.oracle.svm.core.util.BasedOnJDKFile; |
34 | 35 | import com.oracle.svm.core.util.TimeUtils;
|
35 | 36 | import com.oracle.svm.core.util.UnsignedUtils;
|
36 | 37 |
|
|
42 | 43 | * its base class {@code AdaptiveSizePolicy}. Method and variable names have been kept mostly the
|
43 | 44 | * same for comparability.
|
44 | 45 | */
|
| 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") |
45 | 53 | class AdaptiveCollectionPolicy extends AbstractCollectionPolicy {
|
46 | 54 |
|
47 | 55 | /*
|
@@ -152,7 +160,7 @@ public String getName() {
|
152 | 160 | }
|
153 | 161 |
|
154 | 162 | @Override
|
155 |
| - public boolean shouldCollectCompletely(boolean followingIncrementalCollection) { // should_{attempt_scavenge,full_GC} |
| 163 | + public boolean shouldCollectCompletely(boolean followingIncrementalCollection) { // should_attempt_scavenge |
156 | 164 | guaranteeSizeParametersInitialized();
|
157 | 165 |
|
158 | 166 | if (!followingIncrementalCollection && shouldCollectYoungGenSeparately(!SerialGCOptions.useCompactingOldGen())) {
|
@@ -182,17 +190,7 @@ public boolean shouldCollectCompletely(boolean followingIncrementalCollection) {
|
182 | 190 | return true;
|
183 | 191 | }
|
184 | 192 |
|
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; |
196 | 194 | }
|
197 | 195 |
|
198 | 196 | private void updateAverages(boolean isSurvivorOverflow, UnsignedWord survivedChunkBytes, UnsignedWord promotedChunkBytes) {
|
|
0 commit comments