RFR: 8275415: Prepare Leak Profiler for Lilliput
Markus Grönlund
mgronlun at openjdk.java.net
Mon Oct 18 17:38:59 UTC 2021
Greetings,
Currently, the associated chain for a leak candidate (represented by the leak context edge) is stored as a pointer in the mark word. With Lilliput, this will not work.
Providing another hashtable works fine to solve this problem, but the overhead might not fully warrant it. The default hashtable has 1009 buckets IIRC, but the number of leak candidates (samples) found during heap traversal might only be a relatively small number (default queue size is 256).
A solution is to still use space available in the mark word, since we have already provisioned to use this as a "scratch area" as part of setup. It is now limited to accommodate the anticipated changes under the Lilliput project (i.e. restricted to use only the lower 32-bits only) and instead of storing a pointer to the leak context edge, we store an index into an array.
Testing: jdk_jfr
Thanks
Markus
-------------
Commit messages:
- Prepare Leak Profiler for Lilliput
Changes: https://git.openjdk.java.net/jdk/pull/5992/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5992&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8275415
Stats: 105 lines in 3 files changed: 75 ins; 23 del; 7 mod
Patch: https://git.openjdk.java.net/jdk/pull/5992.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/5992/head:pull/5992
PR: https://git.openjdk.java.net/jdk/pull/5992
More information about the hotspot-jfr-dev
mailing list