From shade at openjdk.org Tue Jan 20 10:00:52 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jan 2026 10:00:52 GMT Subject: RFR: 7904124: JOL: Correct mark header size for Lilliput V2 in object internals In-Reply-To: References: Message-ID: On Mon, 22 Dec 2025 17:15:57 GMT, Oli Gillespie wrote: > Before (mark header size is wrong, overlapping the first field): > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x0036449200bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > After: > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 4 (object header: mark) 0x00bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > ModelVM naively uses the address size as the mark header size, but that's not valid for Lilliput V2. Use object header size minus class header size instead (both of these are implemented for Lilliput V2). I'm not certain if this is correct in all scenarios. > > **Testing**: spot-checked with Lilliput off, Lilliput V1 and Lilliput V2 for String and a few other classes. Ran `mvn clean verify`. Yeah, this looks all right. There are might be other incompatibilities even with current mainline, but it is out of scope for this PR. ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/jol/pull/66#pullrequestreview-3681336131 From duke at openjdk.org Tue Jan 20 10:35:34 2026 From: duke at openjdk.org (duke) Date: Tue, 20 Jan 2026 10:35:34 GMT Subject: RFR: 7904124: JOL: Correct mark header size for Lilliput V2 in object internals In-Reply-To: References: Message-ID: On Mon, 22 Dec 2025 17:15:57 GMT, Oli Gillespie wrote: > Before (mark header size is wrong, overlapping the first field): > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x0036449200bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > After: > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 4 (object header: mark) 0x00bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > ModelVM naively uses the address size as the mark header size, but that's not valid for Lilliput V2. Use object header size minus class header size instead (both of these are implemented for Lilliput V2). I'm not certain if this is correct in all scenarios. > > **Testing**: spot-checked with Lilliput off, Lilliput V1 and Lilliput V2 for String and a few other classes. Ran `mvn clean verify`. @olivergillespie Your change (at version bb7bb9bb4d89618799dc58e238629ecedac54048) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/jol/pull/66#issuecomment-3772163656 From ogillespie at openjdk.org Tue Jan 20 11:03:33 2026 From: ogillespie at openjdk.org (Oli Gillespie) Date: Tue, 20 Jan 2026 11:03:33 GMT Subject: Integrated: 7904124: JOL: Correct mark header size for Lilliput V2 in object internals In-Reply-To: References: Message-ID: On Mon, 22 Dec 2025 17:15:57 GMT, Oli Gillespie wrote: > Before (mark header size is wrong, overlapping the first field): > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 8 (object header: mark) 0x0036449200bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > After: > > java.lang.String object internals: > OFF SZ TYPE DESCRIPTION VALUE > 0 4 (object header: mark) 0x00bc8001 (Lilliput) > 4 4 int String.hash 3556498 > > > ModelVM naively uses the address size as the mark header size, but that's not valid for Lilliput V2. Use object header size minus class header size instead (both of these are implemented for Lilliput V2). I'm not certain if this is correct in all scenarios. > > **Testing**: spot-checked with Lilliput off, Lilliput V1 and Lilliput V2 for String and a few other classes. Ran `mvn clean verify`. This pull request has now been integrated. Changeset: bd87bd73 Author: Oli Gillespie Committer: Aleksey Shipilev URL: https://git.openjdk.org/jol/commit/bd87bd7302f7156fee8664e2091fab9fabc0a00a Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod 7904124: JOL: Correct mark header size for Lilliput V2 in object internals Reviewed-by: shade ------------- PR: https://git.openjdk.org/jol/pull/66 From shade at openjdk.org Wed Jan 21 11:17:51 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 11:17:51 GMT Subject: RFR: 7904136: JOL: JDK 25 compatibility fixes Message-ID: The umbrella issue for various JOL improvements for better JDK 25 support. Now that JDK 25 is finalized and stabilizing, we can rely on some details of JDK 25 implementation in JOL internals. ------------- Commit messages: - More test improvements - Pass tests on JDK 25 - Layouter efficiency tests, hook up JDK 25 tests - Add Layouter to internals-estimates - Fix Changes: https://git.openjdk.org/jol/pull/67/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=67&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7904136 Stats: 351 lines in 9 files changed: 277 ins; 44 del; 30 mod Patch: https://git.openjdk.org/jol/pull/67.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/67/head:pull/67 PR: https://git.openjdk.org/jol/pull/67 From duke at openjdk.org Wed Jan 21 11:52:58 2026 From: duke at openjdk.org (duke) Date: Wed, 21 Jan 2026 11:52:58 GMT Subject: git: openjdk/jol: 7904136: JOL: JDK 25 compatibility fixes Message-ID: <6a815b94-b903-47d5-8a37-d15f26cc7937@openjdk.org> Changeset: acb7bf94 Branch: master Author: Aleksey Shipil?v Committer: GitHub Date: 2026-01-21 12:52:08 +0000 URL: https://git.openjdk.org/jol/commit/acb7bf9480bfd0588e93b353aa7217d3fe3efabe 7904136: JOL: JDK 25 compatibility fixes ! .github/workflows/pre-integration.yml ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectInternalsEstimates.java ! jol-core/pom.xml ! jol-core/src/main/java/org/openjdk/jol/layouters/HotSpotLayouter.java + jol-core/src/test/java/org/openjdk/jol/TestUtils.java ! jol-core/src/test/java/org/openjdk/jol/info/ClassLayoutPrivatesTest.java + jol-core/src/test/java/org/openjdk/jol/layouters/HotspotLayouterCompactTest.java ! jol-core/src/test/java/org/openjdk/jol/layouters/HotspotLayouterRealTest.java ! jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java From shade at openjdk.org Wed Jan 21 11:54:40 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 11:54:40 GMT Subject: Withdrawn: 7904136: JOL: JDK 25 compatibility fixes In-Reply-To: References: Message-ID: On Wed, 21 Jan 2026 11:12:05 GMT, Aleksey Shipilev wrote: > The umbrella issue for various JOL improvements for better JDK 25 support. Now that JDK 25 is finalized and stabilizing, we can rely on some details of JDK 25 implementation in JOL internals. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/67 From shade at openjdk.org Wed Jan 21 15:16:54 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 15:16:54 GMT Subject: RFR: 7904137: JOL: Improve heap dump parsing speed Message-ID: JOL is often used to parse large heap dumps, and it would be good to see if there are simple opportunities in speeding up the heap dump reader. This change lifts up `heapdump-estimates` speed from 800 MB/sec to 1600 MB/sec on my machines. ------------- Commit messages: - Buffer sizes - Special path for read_U1 - Even better skipping - More efficient skipping - More simplifications - Unnecessary alloc - Skip reading some useless stuff - Improve buffering Changes: https://git.openjdk.org/jol/pull/68/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=68&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7904137 Stats: 131 lines in 1 file changed: 80 ins; 29 del; 22 mod Patch: https://git.openjdk.org/jol/pull/68.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/68/head:pull/68 PR: https://git.openjdk.org/jol/pull/68 From shade at openjdk.org Wed Jan 21 15:38:10 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 15:38:10 GMT Subject: Withdrawn: 7904137: JOL: Improve heap dump parsing speed In-Reply-To: References: Message-ID: On Wed, 21 Jan 2026 15:09:30 GMT, Aleksey Shipilev wrote: > JOL is often used to parse large heap dumps, and it would be good to see if there are simple opportunities in speeding up the heap dump reader. This change lifts up `heapdump-estimates` speed from 800 MB/sec to 1600 MB/sec on my machines. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/68 From duke at openjdk.org Wed Jan 21 15:42:20 2026 From: duke at openjdk.org (duke) Date: Wed, 21 Jan 2026 15:42:20 GMT Subject: git: openjdk/jol: 7904137: JOL: Improve heap dump parsing speed Message-ID: <9e0fa1d0-37a7-4f91-969e-978a5336db8a@openjdk.org> Changeset: 7b4313fa Branch: master Author: Aleksey Shipil?v Committer: GitHub Date: 2026-01-21 16:35:23 +0000 URL: https://git.openjdk.org/jol/commit/7b4313fa72489a30a11636cc9d35a068f530abd0 7904137: JOL: Improve heap dump parsing speed ! jol-core/src/main/java/org/openjdk/jol/heap/HeapDumpReader.java From shade at openjdk.org Wed Jan 21 16:03:06 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 16:03:06 GMT Subject: RFR: 7904138: JOL: Update heapdump-estimates for current JDK releases Message-ID: Now that JDK 25 and +UCOH is out, we can and should update heapdump-estimates for extra clarity. ------------- Commit messages: - More touchups - Touchup - Touchups - Also array base improvements - Handle caps - Model Changes: https://git.openjdk.org/jol/pull/69/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=69&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7904138 Stats: 100 lines in 1 file changed: 43 ins; 0 del; 57 mod Patch: https://git.openjdk.org/jol/pull/69.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/69/head:pull/69 PR: https://git.openjdk.org/jol/pull/69 From shade at openjdk.org Wed Jan 21 16:34:42 2026 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jan 2026 16:34:42 GMT Subject: Withdrawn: 7904138: JOL: Update heapdump-estimates for current JDK releases In-Reply-To: References: Message-ID: On Wed, 21 Jan 2026 15:52:32 GMT, Aleksey Shipilev wrote: > Now that JDK 25 and +UCOH is out, we can and should update heapdump-estimates for extra clarity. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/69 From duke at openjdk.org Wed Jan 21 16:38:22 2026 From: duke at openjdk.org (duke) Date: Wed, 21 Jan 2026 16:38:22 GMT Subject: git: openjdk/jol: 7904138: JOL: Update heapdump-estimates for current JDK releases Message-ID: Changeset: db2cc744 Branch: master Author: Aleksey Shipil?v Committer: GitHub Date: 2026-01-21 17:31:45 +0000 URL: https://git.openjdk.org/jol/commit/db2cc744485031c8149991a004ab02f2ea9b24dd 7904138: JOL: Update heapdump-estimates for current JDK releases ! jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpEstimates.java