RFR: 8263464: NMT: assert in gtest os.release_multi_mappings_vm [v2]

Gerard Ziemski gziemski at openjdk.org
Thu May 11 19:42:38 UTC 2023


On Fri, 5 May 2023 20:34:26 GMT, Gerard Ziemski <gziemski at openjdk.org> wrote:

>> This fix allows NMT to account for released memory that was allocated in chunks, as long as the final pointer and size refer to total contiguous regions of the requested size.
>> 
>> Tested via `Mach5 tier1,tier2,tier3` and locally via `gtest:NMT*:os*`
>
> Gerard Ziemski has updated the pull request incrementally with one additional commit since the last revision:
> 
>   support partial release, add corresponding test

Added support for more partial regions, made test more flexible and used it to cover more cases.


// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][xx..][....][....]
// C reserve [....][xx..][....][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_single_region_case1) {
  test_release(0.00, 0.50, 0.00, 0.00);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][.xx.][....][....]
// C reserve [....][.xx.][....][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_single_region_case2) {
  test_release(0.25, 0.50, 0.00, 0.00);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][..xx][....][....]
// C reserve [....][..xx][....][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_single_region_case3) {
  test_release(0.50, 0.50, 0.00, 0.00);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][xxxx][xxxx][....]
// C reserve [....][xxxx][xxxx][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_multi_regions_case1) {
  test_release(0.00, 1.00, 0.00, 1.00);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][xxxx][xx..][....]
// C reserve [....][xxxx][xx..][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_multi_regions_case2) {
  test_release(0.00, 1.00, 0.00, 0.50);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][..xx][xxxx][....]
// C reserve [....][..xx][xxxx][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_multi_regions_case3) {
  test_release(0.50, 0.50, 0.00, 1.00);
}

// A reserve [aaaa][bbbb][cccc][dddd]
// B release [....][..xx][xx..][....]
// C reserve [....][..xx][xx..][....]
// D release [xxxx][xxxx][xxxx][xxxx]
TEST_VM(os, release_multi_mappings_partial_multi_regions_case4) {
  test_release(0.50, 0.50, 0.00, 0.50);
}

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

PR Comment: https://git.openjdk.org/jdk/pull/13813#issuecomment-1544572544


More information about the hotspot-runtime-dev mailing list