diff --git a/src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp b/src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp index fe7feb68fb5..c3b8ccdcebf 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp @@ -299,7 +299,9 @@ size_t ShenandoahGenerationSizer::max_size_for(ShenandoahGeneration* generation) case YOUNG: return max_young_size(); case OLD: - return min_young_size(); + // On the command line, max size of OLD is specified indirectly, by setting a minimum size of young. + // OLD is what remains within the heap after YOUNG has been sized. + return ShenandoahHeap::heap()->max_capacity() - min_young_size(); default: ShouldNotReachHere(); return 0; @@ -311,6 +313,8 @@ size_t ShenandoahGenerationSizer::min_size_for(ShenandoahGeneration* generation) case YOUNG: return min_young_size(); case OLD: + // On the command line, min size of OLD is specified indirectly, by setting a maximum size of young. + // OLD is what remains within the heap after YOUNG has been sized. return ShenandoahHeap::heap()->max_capacity() - max_young_size(); default: ShouldNotReachHere();