RFR: 8263464: NMT: assert in gtest os.release_multi_mappings_vm [v2]
Gerard Ziemski
gziemski at openjdk.org
Mon May 8 19:09:29 UTC 2023
On Mon, 8 May 2023 17:22:47 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
>> I tried to make a picture of the memory and the parts that should get released for testing:
>>
>>
>> // allocate [aaaa][bbbb][cccc][dddd]
>>
>> // 1 release partial [....][bbbb][....][....]
>> // 2 release partial [....][....][cccc][....]
>> // 3 release partial [....][bbbb][cccc][....]
>> // 4 release partial [....][..bb][cccc][....]
>> // 5 release partial [....][bb..][cccc][....]
>> // 6 release partial [....][bbbb][cc..][....]
>> // 7 release partial [....][bbbb][..cc][....]
>> // 8 release partial [....][..bb][cc..][....]
>> // 9 release partial [....][bb..][..cc][....]
>> // 10 release partial [....][bb..][cc..][....]
>> // 11 release partial [....][..bb][..cc][....]
>> // 12 release partial [....][.bb.][....][....]
>> // 13 release partial [....][.bb.][.cc.][....]
>>
>>
>> Are we still missing any cases?
>>
>> Did I add too much? (i.e. drop case 13?)
>
> Assuming that your letters mean the release range:
> - 1+2 are included in 3
> - 5, 7, 9, 10, 11, 13 are all not possible with one release call, since a single os::release_memory call taks a single contiguous release range
> - that leaves 3, 4, 6, 8. In other words:
>
> [stripe1][stripe2][strip3][stripe4]
> A xxxxxxxxxxxxxxxxx
> B xxxxxxxxxxxxx
> C xxxxxxxxxxxxx
> D xxxxxxxxx
I think I see 3 more cases for the release pattern that we can add:
[aaaa][bbbb][cccc][dddd]
1 [....][xxxx][xxxx][....]
2 [....][..xx][xxxx][....]
3 [....][xxxx][xx..][....]
4 [....][..xx][xx..][....]
5 [....][..xx][....][....]
6 [....][....][xx..][....]
7 [....][.xx.][....][....]
Aren't cases 5,6 and 7 unique?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13813#discussion_r1187792475
More information about the hotspot-runtime-dev
mailing list