RFR: 8310110: Shenandoah: Trace page sizes [v5]

Roman Kennke rkennke at openjdk.org
Wed Jun 28 09:09:09 UTC 2023


On Tue, 20 Jun 2023 15:21:45 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

>> `-Xlog:pagesize` now produced this printout
>> 
>> 
>> [0.006s][info][pagesize] Heap: req_size=5G base=0x00000006c0000000 page_size=1G alignment=1G size=5G
>> [0.006s][info][pagesize] Mark Bitmap: req_size=160M base=0x00007fc4c0000000 page_size=1G alignment=1G size=1G
>> [0.011s][info][pagesize] Aux Bitmap: req_size=160M base=0x00007fc4c0000000 page_size=1G alignment=1G size=1G
>> [0.011s][info][pagesize] Region Storage: req_size=320K base=0x00007fc3c0000000 page_size=1G alignment=1G size=1G
>> [0.011s][info][pagesize] Collection Set: req_size=16K base=0x0000000000010000 page_size=4K alignment=4K size=16K
>> 
>> 
>> Note that this printout is from a machine with 1G pages and -XX:+UseLargePages; it nicely demonstrates how much memory we waste in that case on support structures; https://bugs.openjdk.org/browse/JDK-8310111 tracks that.
>> 
>> Also note that I reuse `os::trace_page_sizes_for_requested_size` here, which I think can be improved and made clearer (alignment is actually requested pagesize). This is tracked separately in https://github.com/openjdk/jdk/pull/14484 .
>
> Thomas Stuefe has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains ten additional commits since the last revision:
> 
>  - remove test changes from patch
>  - Merge branch 'master' into JDK-8310110-Trace-page-sizes
>  - remove Shenandoah from TestTracePageSizes
>  - disable Shenandoah THP trace test for now
>  - reformat
>  - enable runtime/os/TestTracePageSizes.java for shenandoah
>  - feedback aleksey
>  - Merge branch 'master' into JDK-8310110-Trace-page-sizes
>  - JDK-8310110-Trace-page-sizes

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 332:

> 330:         assert(cset_rs.base() == req_addr, "Allocated where requested: " PTR_FORMAT ", " PTR_FORMAT, p2i(cset_rs.base()), addr);
> 331:         _collection_set = new ShenandoahCollectionSet(this, cset_rs, sh_rs.base());
> 332:         rs = &cset_rs;

I'm probably missing something here, but doesn't cset_rs go out of scope, and rs would point to undefined stuff?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14486#discussion_r1244919645


More information about the hotspot-dev mailing list