RFR: 8329418: Replace pointers to tables with offsets in relocation bitmap [v3]
Ioi Lam
iklam at openjdk.org
Thu May 9 19:59:54 UTC 2024
On Thu, 9 May 2024 18:31:24 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:
>> The beginning of the RW region contains pointers to c++ vtables which are always located at a fixed offset from the shared base address at runtime. This offset can be calculated at dumptime and stored with the read-only tables at the top of the RO region. As a further improvement, all the pointers to RO tables are replaced with offsets as well.
>>
>> These changes will reduce the number of pointers in the RW and RO regions and will allow for the relocation bitmap size optimizations to be more effective. Verified with tier 1-5 tests.
>
> Matias Saavedra Silva 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 12 additional commits since the last revision:
>
> - Merge branch 'master' into pointer_to_offset_8329418
> - Ioi comments
> - Chris comments and cleanup
> - Merge branch 'master' into pointer_to_offset_8329418
> - Cleanup
> - Corrected SA
> - Editing SA
> - Fixed dynamic dumping
> - Now works with -Xshare:on
> - Adjusted serialization
> - ... and 2 more: https://git.openjdk.org/jdk/compare/c6bab5bc...11f39483
LGTM. Just one small nit.
src/hotspot/share/cds/serializeClosure.hpp line 52:
> 50:
> 51: // Iterate on the pointers from p[0] through p[num_pointers-1]
> 52: void do_ptrs(u_char* start, size_t size) {
I think it will be more consistent if we use the same `void** p` parameter as in `do_ptr()`. The `u_char*` here is a historical oddity and should be fixed.
-------------
Marked as reviewed by iklam (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/19107#pullrequestreview-2048708441
PR Review Comment: https://git.openjdk.org/jdk/pull/19107#discussion_r1595908706
More information about the serviceability-dev
mailing list