8354228: Parallel: Set correct minimum of InitialSurvivorRatio

Reviewed-by: tschatzl, gli
This commit is contained in:
Albert Mingkun Yang 2025-04-23 10:40:45 +00:00
parent e76f20301c
commit 82c249446f
3 changed files with 13 additions and 14 deletions

View File

@ -66,6 +66,18 @@ void ParallelArguments::initialize() {
}
}
if (InitialSurvivorRatio < MinSurvivorRatio) {
if (FLAG_IS_CMDLINE(InitialSurvivorRatio)) {
if (FLAG_IS_CMDLINE(MinSurvivorRatio)) {
jio_fprintf(defaultStream::error_stream(),
"Inconsistent MinSurvivorRatio vs InitialSurvivorRatio: %d vs %d\n", MinSurvivorRatio, InitialSurvivorRatio);
}
FLAG_SET_DEFAULT(MinSurvivorRatio, InitialSurvivorRatio);
} else {
FLAG_SET_DEFAULT(InitialSurvivorRatio, MinSurvivorRatio);
}
}
// If InitialSurvivorRatio or MinSurvivorRatio were not specified, but the
// SurvivorRatio has been set, reset their default values to SurvivorRatio +
// 2. By doing this we make SurvivorRatio also work for Parallel Scavenger.
@ -101,17 +113,6 @@ void ParallelArguments::initialize_alignments() {
void ParallelArguments::initialize_heap_flags_and_sizes_one_pass() {
// Do basic sizing work
GenArguments::initialize_heap_flags_and_sizes();
// The survivor ratio's are calculated "raw", unlike the
// default gc, which adds 2 to the ratio value. We need to
// make sure the values are valid before using them.
if (MinSurvivorRatio < 3) {
FLAG_SET_ERGO(MinSurvivorRatio, 3);
}
if (InitialSurvivorRatio < 3) {
FLAG_SET_ERGO(InitialSurvivorRatio, 3);
}
}
void ParallelArguments::initialize_heap_flags_and_sizes() {

View File

@ -412,7 +412,7 @@
\
product(uintx, InitialSurvivorRatio, 8, \
"Initial ratio of young generation/survivor space size") \
range(0, max_uintx) \
range(3, max_uintx) \
\
product(bool, UseGCOverheadLimit, true, \
"Use policy to limit of proportion of time spent in GC " \

View File

@ -65,8 +65,6 @@ public class TestMinAndInitialSurvivorRatioFlags {
testSurvivorRatio(-1, 15, 3, options, true);
testSurvivorRatio(-1, 15, 3, options, false);
testSurvivorRatio(-1, 10, 10, options, true);
testSurvivorRatio(-1, 3, 15, options, true);
testSurvivorRatio(-1, 3, 15, options, false);
}
/**