RFR: 8310743: assert(reserved_rgn != nullptr) failed: Add committed region, No reserved region found

Axel Boldt-Christmas aboldtch at openjdk.org
Mon Jul 3 14:10:10 UTC 2023


On Fri, 30 Jun 2023 13:07:17 GMT, Axel Boldt-Christmas <aboldtch at openjdk.org> wrote:

> JDK-8309675 tried to solve the issue of NMT reporting to much committed memory by faking the virtual addresses registered when committing physical memory. This mapping was simply the `virtual address  = physical offset in backing file + heap base`. This works when ZGC gets a contiguous heap which starts at the heap base. However fails if it does not start at the heap base or is discontiguous.
> 
> This proposal fixes this by keeping track of all the reserved virtual address ranges and by creating a mapping from the physical offsets to the actual reserved virtual address ranges. If the physical offsets committed maps to multiple reserved ranges, it is processed as multiple commits.
> 
> The develop flag `ZForceDiscontiguousHeapReservations` is introduced to test the discontiguous heap feature and interactions.
> 
> Testing: 
>  * Added test on all Oracle platforms
>  * GHA
>  * Running tier1-3

I generally agree with the fail early strategy. My personal ILW assessment of the two approaches made me favour this one. But maybe I'll reassess this in the future. 

Thanks for all reviews.

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

PR Comment: https://git.openjdk.org/jdk/pull/14730#issuecomment-1618370801


More information about the hotspot-gc-dev mailing list