|
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