RFR: 8280087: G1: Handle out-of-mark stack situations during reference processing more gracefully [v5]

Ivan Walulya iwalulya at openjdk.org
Fri Dec 8 13:40:14 UTC 2023


On Thu, 7 Dec 2023 21:09:36 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:

>> Ivan Walulya has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Albert Review
>
> src/hotspot/share/gc/g1/g1ConcurrentMark.hpp line 162:
> 
>> 160:     //        |    |------->|     |     |     |     |     |     |     |    |
>> 161:     //        +----+        +-----+-----+-----+-----+-----+-----+-----+----+
>> 162:     //
> 
> Thank you for the diagram. It's much easier to understand now. However, it's unclear why it's important that "... doubles the capacity of  the growable array". What happens if all buckets have the same capacity?
> 
> Maybe I am misunderstanding the text/diagram, but I thought the last sentence should be sth like "each new bucket doubles the capacity of this chunk-allocator".

"... doubles the capacity of the growable array" this is the general approach to growing "vectors" / "arrays" so what I was aiming for is what you state in the second paragraph as "each new bucket doubles the capacity of this chunk-allocator".

What happens if all buckets have the same capacity?
Then that is a different approach, requires  deciding on the fixed "bucket capacity" rather than "growing out" the buckets.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16979#discussion_r1420454802


More information about the hotspot-gc-dev mailing list