RFR: 8277854: The upper bound of GCCardSizeInBytes should be limited to 512 for 32-bit platforms

Thomas Schatzl tschatzl at openjdk.java.net
Fri Nov 26 11:31:00 UTC 2021

On Fri, 26 Nov 2021 06:29:45 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> Hi all,
> runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java crashes on linux/x86_32 with `-XX:GCCardSizeInBytes=1024`.
> This is because if`-XX:GCCardSizeInBytes=1024` then `BOTConstants::N_words` [1] would be 256.
> Then the guarantee [2] always fails due to _bot->offset_array(start_card), which is a u_char value, never equals to 256.
> So for 32-bit platforms, the upper bound of `GCCardSizeInBytes` should be limited to 512.
> Thanks.
> Best regards,
> Jie
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/gc/shared/blockOffsetTable.cpp#L45
> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp#L186

I think this is good, but I had to amend the CSR (https://bugs.openjdk.java.net/browse/JDK-8275142) for it for this case. As soon as it has been approved again sometime next week, this change can be integrated.
Also fixed the release note.


Marked as reviewed by tschatzl (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/6569

More information about the hotspot-gc-dev mailing list