From a083364520ab75cb5596f103b2fa51d7f7a8a706 Mon Sep 17 00:00:00 2001 From: Thomas Schatzl Date: Mon, 27 May 2024 07:11:18 +0000 Subject: [PATCH] 8321292: SerialGC: NewSize vs InitialHeapSize check has an off-by-one error Reviewed-by: ayang, iwalulya --- src/hotspot/share/gc/shared/genArguments.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/gc/shared/genArguments.cpp b/src/hotspot/share/gc/shared/genArguments.cpp index 3c1d1ac6ec1..3eac2e39f38 100644 --- a/src/hotspot/share/gc/shared/genArguments.cpp +++ b/src/hotspot/share/gc/shared/genArguments.cpp @@ -101,8 +101,11 @@ void GenArguments::initialize_heap_flags_and_sizes() { // Make sure NewSize allows an old generation to fit even if set on the command line if (FLAG_IS_CMDLINE(NewSize) && NewSize >= InitialHeapSize) { - log_warning(gc, ergo)("NewSize was set larger than initial heap size, will use initial heap size."); - FLAG_SET_ERGO(NewSize, bound_minus_alignment(NewSize, InitialHeapSize, GenAlignment)); + size_t revised_new_size = bound_minus_alignment(NewSize, InitialHeapSize, GenAlignment); + log_warning(gc, ergo)("NewSize (%zuk) is equal to or greater than initial heap size (%zuk). A new " + "NewSize of %zuk will be used to accomodate an old generation.", + NewSize/K, InitialHeapSize/K, revised_new_size/K); + FLAG_SET_ERGO(NewSize, revised_new_size); } // Now take the actual NewSize into account. We will silently increase NewSize