RFR: 8252041: G1: Fix incorrect uses of HeapRegionManager::max_length

Stefan Johansson sjohanss at openjdk.java.net
Wed Sep 16 12:59:36 UTC 2020


On Tue, 15 Sep 2020 13:10:28 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   can I have reviews for this change that fixes some uses of HeapRegionManager::max_regions()/max_expandable_regions() in
>   our code to use the correct variant?
> 
> HeapRegionManager::max_length gives the absolute maximum number of regions reserved for the heap based on the
> reservation.
> HeapRegionmanager::max_expandable_regions() returns the maximum number of regions the heap can grow to (can be
> committed).
> Typically they are exchangeable, but if the reservation is larger than what -Xmx allows (like when file-mapping old
> gen), this is not the case, and causes assertions. In some cases the existing region manager code could (if it reserved
> more than -Xmx) give back more than -Xmx allows.  Testing: tier1-5.

Thanks for cleaning this up Thomas.

The changes look good but I find these two names a bit confusing since that are so similar, what do you think about:
`max_regions()` -> `reserved_regions()`
`max_expandable_regions()` -> `max_regions()`

And similar for the functions in the HeapRegionManager, what do you think about this?

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

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



More information about the hotspot-gc-dev mailing list