From rkennke at openjdk.org Thu Jun 1 10:45:32 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 1 Jun 2023 10:45:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8309197: [Lilliput/JDK17] Fix ObjectSampleMarker without Lilliput In-Reply-To: References: Message-ID: On Wed, 31 May 2023 11:43:31 GMT, Aleksey Shipilev wrote: > The change in ObjectSampleMarker, a part of JFR, is incorrect when Lilliput is off. It would reach to `set_narrow_klass` and `narrow_klass` unconditionally, but that is only safe to do when `UseCompactObjectHeader` is on. > > This would be caught by assert in `set_narrow_klass` and `narrow_klass` with `-UCOH`. AFAICS, this has a chance to corrupt the header in release bits, as it would copy only the parts of the mark word, and we might be just lucky those are the same bits. > > Additional testing: > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:-UseCompactObjectHeaders` (passes now) > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:+UseCompactObjectHeaders` (still fails, with unrelated problems) Looks good to me! As noted earlier, #20 is perhaps more comprehensive because it avoids using the mark-word altogether, but what you propose seems less intrusive. ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/30#pullrequestreview-1455156519 From shade at openjdk.org Thu Jun 1 11:19:37 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 1 Jun 2023 11:19:37 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8309192: [Lilliput/JDK17] Properly deal with flag mismatch in CDS [v2] In-Reply-To: References: Message-ID: On Wed, 31 May 2023 12:04:30 GMT, Thomas Stuefe wrote: >> Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: >> >> - Cherry-pick >> - Revert old patch > > Okay as in it does what you write it does. Not much discussion found in the bug though. In Lilliput master, CDS works with compact headers. Are the necessary parts just missing? > > Note that I currently work on the upstream patch for https://github.com/tstuefe/jdk/tree/metaspace-for-lilliput (still very much wip), which will also touch CDS. > > Cheers, Thomas > > p.s. you may run into CDS tests that assume CDS is enabled by default, or that test that. @tstuefe, you good with this version? ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/29#issuecomment-1571858065 From stuefe at openjdk.org Thu Jun 1 12:35:08 2023 From: stuefe at openjdk.org (Thomas Stuefe) Date: Thu, 1 Jun 2023 12:35:08 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8309192: [Lilliput/JDK17] Properly deal with flag mismatch in CDS [v2] In-Reply-To: References: Message-ID: On Wed, 31 May 2023 16:11:53 GMT, Aleksey Shipilev wrote: >> See the discussion in the bug. >> >> There is a problem that disabling Lilliput effectively disables CDS. I think for 17u we should disable UCOH by default, and disable CDS when UCOH is on. That is, keep the legacy configuration untouched, and let Lilliput pay the price, if any. >> >> Additional testing: >> - [x] macos-aarch64-server-fastdebug, `runtime/cds` > > Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: > > - Cherry-pick > - Revert old patch Okay. Just to verify, starting with +UCOH and Xshare:on (or default) will now refuse to load the jsa, right? BTW, with https://github.com/openjdk/jdk/compare/master...tstuefe:jdk:metaspace-for-lilliput, I am generating three CDS archives, the usual two: - classes.jsa (-UCOH, +UCCP) - classes_NOCOOPS.jsa (-UCOH, -UCCP) and then another one - classes_COH.jsa (+UCOH, +UCCP) See https://github.com/openjdk/jdk/compare/master...tstuefe:jdk:metaspace-for-lilliput#diff-d154aac37a1c81733d3e283f77239d8f21e4c3e42c56063bac1d005d280b1520 so we have an archive for +UCOH ready without use having to Xshare:dump first test/hotspot/jtreg/runtime/cds/CdsDifferentCompactObjectHeaders.java line 50: > 48: // Parameters are object alignment expressed in bytes > 49: private static void > 50: createAndLoadSharedArchive(boolean createCompactHeaders, boolean loadCompactHeaders) Small nit, weird naming. Proposal: `s/createCompactHeaders/useCOHOnCreate` or similar, same for Load ------------- Marked as reviewed by stuefe (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/29#pullrequestreview-1455344254 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/29#discussion_r1213071978 From shade at openjdk.org Thu Jun 1 12:51:29 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 1 Jun 2023 12:51:29 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8309192: [Lilliput/JDK17] Properly deal with flag mismatch in CDS [v2] In-Reply-To: References: Message-ID: On Thu, 1 Jun 2023 12:25:11 GMT, Thomas Stuefe wrote: >> Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: >> >> - Cherry-pick >> - Revert old patch > > test/hotspot/jtreg/runtime/cds/CdsDifferentCompactObjectHeaders.java line 50: > >> 48: // Parameters are object alignment expressed in bytes >> 49: private static void >> 50: createAndLoadSharedArchive(boolean createCompactHeaders, boolean loadCompactHeaders) > > Small nit, weird naming. Proposal: `s/createCompactHeaders/useCOHOnCreate` or similar, same for Load This is from mainline, so I'd like to match. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/29#discussion_r1213101493 From shade at openjdk.org Thu Jun 1 13:05:44 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 1 Jun 2023 13:05:44 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8309197: [Lilliput/JDK17] Fix ObjectSampleMarker without Lilliput In-Reply-To: References: Message-ID: On Wed, 31 May 2023 11:43:31 GMT, Aleksey Shipilev wrote: > The change in ObjectSampleMarker, a part of JFR, is incorrect when Lilliput is off. It would reach to `set_narrow_klass` and `narrow_klass` unconditionally, but that is only safe to do when `UseCompactObjectHeader` is on. > > This would be caught by assert in `set_narrow_klass` and `narrow_klass` with `-UCOH`. AFAICS, this has a chance to corrupt the header in release bits, as it would copy only the parts of the mark word, and we might be just lucky those are the same bits. > > Additional testing: > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:-UseCompactObjectHeaders` (passes now) > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:+UseCompactObjectHeaders` (still fails, with unrelated problems) Thanks! ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/30#issuecomment-1572015320 From shade at openjdk.org Thu Jun 1 13:07:35 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 1 Jun 2023 13:07:35 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8309192: [Lilliput/JDK17] Properly deal with flag mismatch in CDS In-Reply-To: References: Message-ID: On Wed, 31 May 2023 11:10:03 GMT, Aleksey Shipilev wrote: > See the discussion in the bug. > > There is a problem that disabling Lilliput effectively disables CDS. I think for 17u we should disable UCOH by default, and disable CDS when UCOH is on. That is, keep the legacy configuration untouched, and let Lilliput pay the price, if any. > > Additional testing: > - [x] macos-aarch64-server-fastdebug, `runtime/cds` This pull request has now been integrated. Changeset: 6235f22d Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/6235f22d9e21ac49c27d1d873d5c1a52fb003761 Stats: 81 lines in 4 files changed: 78 ins; 3 del; 0 mod 8309192: [Lilliput/JDK17] Properly deal with flag mismatch in CDS Reviewed-by: stuefe ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/29 From shade at openjdk.org Thu Jun 1 13:08:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 1 Jun 2023 13:08:38 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8309197: [Lilliput/JDK17] Fix ObjectSampleMarker without Lilliput In-Reply-To: References: Message-ID: On Wed, 31 May 2023 11:43:31 GMT, Aleksey Shipilev wrote: > The change in ObjectSampleMarker, a part of JFR, is incorrect when Lilliput is off. It would reach to `set_narrow_klass` and `narrow_klass` unconditionally, but that is only safe to do when `UseCompactObjectHeader` is on. > > This would be caught by assert in `set_narrow_klass` and `narrow_klass` with `-UCOH`. AFAICS, this has a chance to corrupt the header in release bits, as it would copy only the parts of the mark word, and we might be just lucky those are the same bits. > > Additional testing: > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:-UseCompactObjectHeaders` (passes now) > - [x] macos-aarch64-server-fastdebug, `jdk/jfr/event/oldobject` with `-XX:+UseCompactObjectHeaders` (still fails, with unrelated problems) This pull request has now been integrated. Changeset: b3f04097 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/b3f04097c215fbc84687f1327a5a6e5065ad2264 Stats: 9 lines in 1 file changed: 5 ins; 0 del; 4 mod 8309197: [Lilliput/JDK17] Fix ObjectSampleMarker without Lilliput Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/30 From rkennke at openjdk.org Wed Jun 14 10:19:30 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 10:19:30 GMT Subject: [master] RFR: 8310010: [Lilliput] SA: Fix oop array element alignment Message-ID: When running with -COOPS, oop array elements need to be 8-byte-aligned. We have this correct in runtime, but not in the SA. Notably, the problem manifests with ZGC. The problem is already fixed in #11044. Testing: - [x] serviceability/sa -XX:-UseCompressedOops ------------- Commit messages: - 8310010: [Lilliput] SA: Fix oop array element alignment Changes: https://git.openjdk.org/lilliput/pull/96/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=96&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310010 Stats: 21 lines in 2 files changed: 12 ins; 7 del; 2 mod Patch: https://git.openjdk.org/lilliput/pull/96.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/96/head:pull/96 PR: https://git.openjdk.org/lilliput/pull/96 From shade at openjdk.org Wed Jun 14 10:29:25 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 14 Jun 2023 10:29:25 GMT Subject: [master] RFR: 8310010: [Lilliput] SA: Fix oop array element alignment In-Reply-To: References: Message-ID: <9qguFi0GXl-RiA9Bpia9l7eqIneLHTqFXWfNhzTwJ5w=.5e48e192-31a5-4e78-bb99-01ec4261c943@github.com> On Wed, 14 Jun 2023 10:12:11 GMT, Roman Kennke wrote: > When running with -COOPS, oop array elements need to be 8-byte-aligned. We have this correct in runtime, but not in the SA. Notably, the problem manifests with ZGC. > The problem is already fixed in #11044. > > Testing: > - [x] serviceability/sa -XX:-UseCompressedOops Looks fine. ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/lilliput/pull/96#pullrequestreview-1479060323 From rkennke at openjdk.org Wed Jun 14 13:05:53 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 13:05:53 GMT Subject: [master] RFR: Merge jdk Message-ID: Merging latest jdk tip. Testing: - [x] tier1 - [ ] tier2 - [ ] tier3 ------------- Commit messages: - Fix merge conflicts - Merge remote-tracking branch 'jdk-upstream/master' into merge-jdk-2023-06-14 - 8309613: [Windows] hs_err files sometimes miss information about the code containing the error - 8309890: TestStringDeduplicationInterned.java waits for the wrong condition - 8309910: Introduce jdk.internal.net.http.HttpConnection.getSNIServerNames() method - 8309878: Reduce inclusion of resolvedIndyEntry.hpp - 8309934: Update GitHub Actions to use JDK 17 for building jtreg - 8305104: Remove the old core reflection implementation - 8309955: Matcher uses @since {@inheritDoc} - 8309757: com/sun/jdi/ReferrersTest.java fails with virtual test thread factory - ... and 521 more: https://git.openjdk.org/lilliput/compare/5e31caf7...9d8e3d54 The webrevs contain the adjustments done while merging with regards to each parent branch: - master: https://webrevs.openjdk.org/?repo=lilliput&pr=97&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=lilliput&pr=97&range=00.1 Changes: https://git.openjdk.org/lilliput/pull/97/files Stats: 214685 lines in 3284 files changed: 161156 ins; 33051 del; 20478 mod Patch: https://git.openjdk.org/lilliput/pull/97.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/97/head:pull/97 PR: https://git.openjdk.org/lilliput/pull/97 From shade at openjdk.org Wed Jun 14 13:05:54 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 14 Jun 2023 13:05:54 GMT Subject: [master] RFR: Merge jdk In-Reply-To: References: Message-ID: <22p2IwnWNxz1cfK3pzp-EJweANwTdaOqn66ZgJUbmLg=.09639d41-f24f-4b28-9399-3d13fb5c0a02@github.com> On Wed, 14 Jun 2023 11:30:45 GMT, Roman Kennke wrote: > Merging latest jdk tip. > > Testing: > - [x] tier1 > - [ ] tier2 > - [ ] tier3 Provisionally approving, assuming the tests are not broken extensively. ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/lilliput/pull/97#pullrequestreview-1479170238 From shade at openjdk.org Wed Jun 14 13:38:34 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 14 Jun 2023 13:38:34 GMT Subject: [master] RFR: Merge jdk In-Reply-To: References: Message-ID: On Wed, 14 Jun 2023 11:30:45 GMT, Roman Kennke wrote: > Merging latest jdk tip. > > Testing: > - [x] tier1 > - [ ] tier2 > - [ ] tier3 Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/97#pullrequestreview-1479473094 From rkennke at openjdk.org Wed Jun 14 15:49:33 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 15:49:33 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310042: [Lilliput/JDK17] ZGC fixes and cleanups Message-ID: In ZGC, we don't need to change zLiveMap.inline.hpp and can revert to upstream state. In zBarrierSetC2.cpp we need to relax an assert. Testing: - [x] hotspot_gc - [x] tier -XX:+UseZGC ------------- Commit messages: - 8310042: [Lilliput/JDK17] ZGC fixes and cleanups Changes: https://git.openjdk.org/lilliput-jdk17u/pull/31/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=31&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310042 Stats: 6 lines in 2 files changed: 4 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/31.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/31/head:pull/31 PR: https://git.openjdk.org/lilliput-jdk17u/pull/31 From shade at openjdk.org Wed Jun 14 16:01:31 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 14 Jun 2023 16:01:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310042: [Lilliput/JDK17] ZGC fixes and cleanups In-Reply-To: References: Message-ID: <_UY2RgqqkbA8lcUNA8es4fpXN6_XPuppUd_0tNS096w=.4f9b2e28-bc8d-43e8-9362-ffac4a8ab3c2@github.com> On Wed, 14 Jun 2023 15:42:04 GMT, Roman Kennke wrote: > In ZGC, we don't need to change zLiveMap.inline.hpp and can revert to upstream state. In zBarrierSetC2.cpp we need to relax an assert. > > Testing: > - [x] hotspot_gc > - [x] tier -XX:+UseZGC Excellent, looks good! ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/31#pullrequestreview-1479823982 From rkennke at openjdk.org Wed Jun 14 16:21:56 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 16:21:56 GMT Subject: [master] RFR: Merge jdk [v2] In-Reply-To: References: Message-ID: > Merging latest jdk tip. > > Testing: > - [x] tier1 > - [x] tier2 > - [ ] tier3 Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Comment-out assert ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/97/files - new: https://git.openjdk.org/lilliput/pull/97/files/9d8e3d54..16eb68d3 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=97&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=97&range=00-01 Stats: 6 lines in 1 file changed: 0 ins; 4 del; 2 mod Patch: https://git.openjdk.org/lilliput/pull/97.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/97/head:pull/97 PR: https://git.openjdk.org/lilliput/pull/97 From rkennke at openjdk.org Wed Jun 14 20:29:30 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 20:29:30 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310042: [Lilliput/JDK17] ZGC fixes and cleanups In-Reply-To: References: Message-ID: <08qYYL8Od4KneFIyTX5VBilbZTEuRYTkY7n8rmB2bN4=.2153443c-aa69-4d95-8efc-c0b606ffe776@github.com> On Wed, 14 Jun 2023 15:42:04 GMT, Roman Kennke wrote: > In ZGC, we don't need to change zLiveMap.inline.hpp and can revert to upstream state. In zBarrierSetC2.cpp we need to relax an assert. > > Testing: > - [x] hotspot_gc > - [x] tier -XX:+UseZGC This pull request has now been integrated. Changeset: 9d6bbffd Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/9d6bbffd3f48dca7a0b063b12d4901de0b686fad Stats: 6 lines in 2 files changed: 4 ins; 0 del; 2 mod 8310042: [Lilliput/JDK17] ZGC fixes and cleanups Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/31 From rkennke at openjdk.org Wed Jun 14 20:30:43 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 14 Jun 2023 20:30:43 GMT Subject: [master] Integrated: Merge jdk In-Reply-To: References: Message-ID: On Wed, 14 Jun 2023 11:30:45 GMT, Roman Kennke wrote: > Merging latest jdk tip. > > Testing: > - [x] tier1 > - [x] tier2 > - [x] tier3 This pull request has now been integrated. Changeset: 8116e72c Author: Roman Kennke URL: https://git.openjdk.org/lilliput/commit/8116e72cf9786a63c98e4286b9218d5aaf52a29d Stats: 214685 lines in 3284 files changed: 161153 ins; 33052 del; 20480 mod Merge jdk Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput/pull/97 From rkennke at openjdk.org Thu Jun 15 16:06:40 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 15 Jun 2023 16:06:40 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops Message-ID: We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. Testing: - [x] hotspot_gc - [ ] tier1 -XX:+UseG1GC - [ ] tier1 -XX:+UseSerialGC - [ ] tier1 -XX:+UseShenandoahGC - [ ] tier2 -XX:+UseG1GC - [ ] tier2 -XX:+UseSerialGC - [ ] tier2 -XX:+UseShenandoahGC ------------- Commit messages: - 8310156: [Lilliput/JDK17] Specialize full-GC loops Changes: https://git.openjdk.org/lilliput-jdk17u/pull/32/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310156 Stats: 496 lines in 26 files changed: 300 ins; 90 del; 106 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/32.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/32/head:pull/32 PR: https://git.openjdk.org/lilliput-jdk17u/pull/32 From shade at openjdk.org Thu Jun 15 19:50:43 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 15 Jun 2023 19:50:43 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS Message-ID: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Similar to [JDK-8309192](https://bugs.openjdk.org/browse/JDK-8309192), we need to pick up a CDS fix to Lilliput. Upstream fix: https://github.com/openjdk/jdk/commit/69d469adf0e6dcec943929836e0a0620f63b46f0 Additional testing: - [x] New test passes ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput/pull/98/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=98&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310167 Stats: 16 lines in 3 files changed: 12 ins; 4 del; 0 mod Patch: https://git.openjdk.org/lilliput/pull/98.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/98/head:pull/98 PR: https://git.openjdk.org/lilliput/pull/98 From rkennke at openjdk.org Thu Jun 15 19:55:42 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 15 Jun 2023 19:55:42 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS In-Reply-To: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: On Thu, 15 Jun 2023 19:42:40 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8309192](https://bugs.openjdk.org/browse/JDK-8309192), we need to pick up a CDS fix to Lilliput. > > Upstream fix: > https://github.com/openjdk/jdk/commit/69d469adf0e6dcec943929836e0a0620f63b46f0 > > Additional testing: > - [x] New test passes It seems to be lacking the testing changes. The VMProps.java change might affect testing outcomes. ------------- PR Review: https://git.openjdk.org/lilliput/pull/98#pullrequestreview-1482287165 From shade at openjdk.org Fri Jun 16 07:57:34 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 07:57:34 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS In-Reply-To: References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: On Thu, 15 Jun 2023 19:52:37 GMT, Roman Kennke wrote: > It seems to be lacking the testing changes. The VMProps.java change might affect testing outcomes. We don't have the `UCOH` block in current `lilliput/jdk`, so it is not applicable: protected String vmCDS() { if (WB.getBooleanVMFlag("UseCompactObjectHeaders")) { return "false"; } return "" + WB.isCDSIncluded(); } ------------- PR Comment: https://git.openjdk.org/lilliput/pull/98#issuecomment-1594268589 From shade at openjdk.org Fri Jun 16 08:15:52 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 08:15:52 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS [v2] In-Reply-To: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: <2pLz8mcPKbDBc25atjgqB-pn75hNQf10yCmbyGI6GKI=.deae5fe9-02e7-42fa-98aa-d06f64838645@github.com> > Similar to [JDK-8309192](https://bugs.openjdk.org/browse/JDK-8309192), we need to pick up a CDS fix to Lilliput. > > Upstream fix: > https://github.com/openjdk/jdk/commit/69d469adf0e6dcec943929836e0a0620f63b46f0 > > Additional testing: > - [x] New test passes Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Add the missing test ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/98/files - new: https://git.openjdk.org/lilliput/pull/98/files/a9018508..2aeb4233 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=98&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=98&range=00-01 Stats: 66 lines in 1 file changed: 66 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput/pull/98.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/98/head:pull/98 PR: https://git.openjdk.org/lilliput/pull/98 From rkennke at openjdk.org Fri Jun 16 08:15:53 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 16 Jun 2023 08:15:53 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS [v2] In-Reply-To: References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: On Fri, 16 Jun 2023 07:54:10 GMT, Aleksey Shipilev wrote: > > It seems to be lacking the testing changes. The VMProps.java change might affect testing outcomes. > > We don't have the `UCOH` block in current `lilliput/jdk`, so it is not applicable. > > Current `lilliput/jdk` is: > > ``` > protected String vmCDS() { > return "" + WB.isCDSIncluded(); > } > ``` Ok, but getting the new test: test/hotspot/jtreg/runtime/cds/CdsDifferentCompactObjectHeaders.java would be useful? ------------- PR Comment: https://git.openjdk.org/lilliput/pull/98#issuecomment-1594286494 From shade at openjdk.org Fri Jun 16 08:15:54 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 08:15:54 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS [v2] In-Reply-To: References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: On Fri, 16 Jun 2023 08:08:16 GMT, Roman Kennke wrote: > Ok, but getting the new test: test/hotspot/jtreg/runtime/cds/CdsDifferentCompactObjectHeaders.java > would be useful? Awwwww. It got dropped from PR for some reason! Added now. ------------- PR Comment: https://git.openjdk.org/lilliput/pull/98#issuecomment-1594289628 From rkennke at openjdk.org Fri Jun 16 08:20:34 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 16 Jun 2023 08:20:34 GMT Subject: [master] RFR: 8310167: [Lilliput] Properly deal with flag mismatch in CDS [v2] In-Reply-To: <2pLz8mcPKbDBc25atjgqB-pn75hNQf10yCmbyGI6GKI=.deae5fe9-02e7-42fa-98aa-d06f64838645@github.com> References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> <2pLz8mcPKbDBc25atjgqB-pn75hNQf10yCmbyGI6GKI=.deae5fe9-02e7-42fa-98aa-d06f64838645@github.com> Message-ID: On Fri, 16 Jun 2023 08:15:52 GMT, Aleksey Shipilev wrote: >> Similar to [JDK-8309192](https://bugs.openjdk.org/browse/JDK-8309192), we need to pick up a CDS fix to Lilliput. >> >> Upstream fix: >> https://github.com/openjdk/jdk/commit/69d469adf0e6dcec943929836e0a0620f63b46f0 >> >> Additional testing: >> - [x] New test passes > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Add the missing test Looks good now! Thanks! ------------- Marked as reviewed by rkennke (Lead). PR Review: https://git.openjdk.org/lilliput/pull/98#pullrequestreview-1482974125 From shade at openjdk.org Fri Jun 16 13:01:54 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 13:01:54 GMT Subject: [master] Integrated: 8310167: [Lilliput] Properly deal with flag mismatch in CDS In-Reply-To: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> References: <1bqisNQREXCGa14yCrEYjghLVUH3rA5cb3a4On1yUbU=.e7ad5442-5011-497a-8ac6-a17aecd99c53@github.com> Message-ID: On Thu, 15 Jun 2023 19:42:40 GMT, Aleksey Shipilev wrote: > Similar to [JDK-8309192](https://bugs.openjdk.org/browse/JDK-8309192), we need to pick up a CDS fix to Lilliput. > > Upstream fix: > https://github.com/openjdk/jdk/commit/69d469adf0e6dcec943929836e0a0620f63b46f0 > > Additional testing: > - [x] New test passes This pull request has now been integrated. Changeset: 2eb37ac5 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput/commit/2eb37ac516c3c68742db1ed9a04720a858e8454a Stats: 82 lines in 4 files changed: 78 ins; 4 del; 0 mod 8310167: [Lilliput] Properly deal with flag mismatch in CDS Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput/pull/98 From shade at openjdk.org Fri Jun 16 15:31:44 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 15:31:44 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default Message-ID: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. Additional testing: - [x] Checked sample `@flagless` tests run with/without `UCOH` - [x] Linux x86_64 tier1, out of box - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` ------------- Commit messages: - Fix - Disable by default Changes: https://git.openjdk.org/lilliput/pull/99/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=99&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310214 Stats: 7 lines in 2 files changed: 4 ins; 0 del; 3 mod Patch: https://git.openjdk.org/lilliput/pull/99.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/99/head:pull/99 PR: https://git.openjdk.org/lilliput/pull/99 From rkennke at openjdk.org Fri Jun 16 15:31:44 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 16 Jun 2023 15:31:44 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default In-Reply-To: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: On Fri, 16 Jun 2023 15:22:00 GMT, Aleksey Shipilev wrote: > This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [x] Linux x86_64 tier1, out of box > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Looks good and makes sense. Thanks! ------------- Marked as reviewed by rkennke (Lead). PR Review: https://git.openjdk.org/lilliput/pull/99#pullrequestreview-1483763317 From shade at openjdk.org Fri Jun 16 16:32:45 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 16:32:45 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310231: [Lilliput/JDK17] Disable compact headers by default Message-ID: Same as https://github.com/openjdk/lilliput/pull/99. Note that I also reverted the change to `UseCompressedClassPointers`, for extra safety. Additional testing: - [ ] Checked sample `@flagless` tests run with/without `UCOH` - [ ] Linux x86_64 tier1, out of box - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/33/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=33&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310231 Stats: 8 lines in 2 files changed: 4 ins; 0 del; 4 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/33.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/33/head:pull/33 PR: https://git.openjdk.org/lilliput-jdk17u/pull/33 From shade at openjdk.org Fri Jun 16 17:37:07 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 17:37:07 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default [v2] In-Reply-To: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: > This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [ ] Linux x86_64 tier1, out of box > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Fix CompressedClassPointerEncoding test ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/99/files - new: https://git.openjdk.org/lilliput/pull/99/files/a50df26c..94a97a34 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=99&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=99&range=00-01 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput/pull/99.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/99/head:pull/99 PR: https://git.openjdk.org/lilliput/pull/99 From rkennke at openjdk.org Fri Jun 16 18:16:32 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 16 Jun 2023 18:16:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310231: [Lilliput/JDK17] Disable compact headers by default In-Reply-To: References: Message-ID: <1Ifd6UBfJhFNeaNcTBrHek0mYOfkF4g9IxA15ccz--k=.91504cae-6485-4ddf-9931-09e0259c1dad@github.com> On Fri, 16 Jun 2023 16:25:52 GMT, Aleksey Shipilev wrote: > Same as https://github.com/openjdk/lilliput/pull/99. > > Note that I also reverted the change to `UseCompressedClassPointers`, for extra safety. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [ ] Linux x86_64 tier1, out of box > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Looks good to me! Thanks! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/33#pullrequestreview-1484083699 From shade at openjdk.org Fri Jun 16 19:59:36 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 19:59:36 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310231: [Lilliput/JDK17] Disable compact headers by default [v2] In-Reply-To: References: Message-ID: > Same as https://github.com/openjdk/lilliput/pull/99. > > Note that I also reverted the change to `UseCompressedClassPointers`, for extra safety. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [x] Linux AArch64 tier1, out of box > - [x] Linux AArch64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [ ] Linux AArch64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Drop the UseCompressedClassPointers for another PR ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/33/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/33/files/df9abf7b..348c02db Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=33&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=33&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/33.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/33/head:pull/33 PR: https://git.openjdk.org/lilliput-jdk17u/pull/33 From shade at openjdk.org Fri Jun 16 20:07:35 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 16 Jun 2023 20:07:35 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310243: [Lilliput/JDK17] Revert UseCompressedClassPointers back to false Message-ID: Splitting this off #33 as atomic commit. This change is in the repo since initial import. Additional testing: - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/34/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=34&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310243 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/34.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/34/head:pull/34 PR: https://git.openjdk.org/lilliput-jdk17u/pull/34 From shade at openjdk.org Mon Jun 19 06:22:40 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 06:22:40 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default [v3] In-Reply-To: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: > This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [x] Linux x86_64 tier1, out of box > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Revert TestMetaspacePerfCounters to upstream, fixes test ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/99/files - new: https://git.openjdk.org/lilliput/pull/99/files/94a97a34..dac4ad70 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=99&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=99&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/99.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/99/head:pull/99 PR: https://git.openjdk.org/lilliput/pull/99 From shade at openjdk.org Mon Jun 19 06:23:36 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 06:23:36 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310231: [Lilliput/JDK17] Disable compact headers by default In-Reply-To: References: Message-ID: On Fri, 16 Jun 2023 16:25:52 GMT, Aleksey Shipilev wrote: > Same as https://github.com/openjdk/lilliput/pull/99. > > Note that I also reverted the change to `UseCompressedClassPointers`, for extra safety. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [x] Linux AArch64 tier1, out of box > - [x] Linux AArch64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [x] Linux AArch64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` This pull request has now been integrated. Changeset: 2af7fdb7 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/2af7fdb76e42d8294342ad019e592e7d5fd556f6 Stats: 7 lines in 2 files changed: 4 ins; 0 del; 3 mod 8310231: [Lilliput/JDK17] Disable compact headers by default Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/33 From shade at openjdk.org Mon Jun 19 06:33:16 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 06:33:16 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310243: [Lilliput/JDK17] Revert UseCompressedClassPointers back to false [v2] In-Reply-To: References: Message-ID: > Splitting this off #33 as atomic commit. This change is in the repo since initial import. > > Additional testing: > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [ ] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` Aleksey Shipilev 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 two additional commits since the last revision: - Merge branch 'lilliput' into revert-ccp - Fix ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/34/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/34/files/a2997249..449f6504 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=34&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=34&range=00-01 Stats: 7 lines in 2 files changed: 4 ins; 0 del; 3 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/34.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/34/head:pull/34 PR: https://git.openjdk.org/lilliput-jdk17u/pull/34 From shade at openjdk.org Mon Jun 19 08:17:42 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 08:17:42 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default [v3] In-Reply-To: References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: On Fri, 16 Jun 2023 15:27:16 GMT, Roman Kennke wrote: >> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: >> >> Revert TestMetaspacePerfCounters to upstream, fixes test > > Looks good and makes sense. Thanks! Had to adjust some tests, @rkennke -- please look again. ------------- PR Comment: https://git.openjdk.org/lilliput/pull/99#issuecomment-1596722311 From rkennke at openjdk.org Mon Jun 19 09:23:36 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 09:23:36 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310243: [Lilliput/JDK17] Revert UseCompressedClassPointers back to false [v2] In-Reply-To: References: Message-ID: On Mon, 19 Jun 2023 06:33:16 GMT, Aleksey Shipilev wrote: >> Splitting this off #33 as atomic commit. This change is in the repo since initial import. >> >> Additional testing: >> - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` >> - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` > > Aleksey Shipilev 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 two additional commits since the last revision: > > - Merge branch 'lilliput' into revert-ccp > - Fix Marked as reviewed by rkennke (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/34#pullrequestreview-1485783988 From rkennke at openjdk.org Mon Jun 19 10:18:35 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 10:18:35 GMT Subject: [master] RFR: 8310214: [Lilliput] Disable compact headers by default [v3] In-Reply-To: References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: On Mon, 19 Jun 2023 06:22:40 GMT, Aleksey Shipilev wrote: >> This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. >> >> Additional testing: >> - [x] Checked sample `@flagless` tests run with/without `UCOH` >> - [x] Linux x86_64 tier1, out of box >> - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` >> - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Revert TestMetaspacePerfCounters to upstream, fixes test Still looks good! ------------- Marked as reviewed by rkennke (Lead). PR Review: https://git.openjdk.org/lilliput/pull/99#pullrequestreview-1485894049 From shade at openjdk.org Mon Jun 19 11:42:40 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 11:42:40 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops In-Reply-To: References: Message-ID: On Thu, 15 Jun 2023 15:59:34 GMT, Roman Kennke wrote: > We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. > > This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 > > However, the changes differ significantly: > - G1 serial compaction is different > - There is no humongous compaction in JDK17 G1 > - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 > > I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc -UCOH > - [x] tier1 -XX:+UseG1GC > - [x] tier1 -XX:+UseSerialGC > - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) > - [x] tier1 -XX:+UseG1GC -UCOH > - [x] tier1 -XX:+UseSerialGC -UCOH > - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) Brief review. I realize more than half of my comments are for upstream PR. Reconcile them as you see fit. src/hotspot/share/gc/g1/g1FullGCAdjustTask.cpp line 81: > 79: _collector(collector), > 80: _bitmap(collector->mark_bitmap()), > 81: _worker_id(worker_id) { } Keep this in place, and just add `public:`/`private:` inline to hide the rest? src/hotspot/share/gc/g1/g1FullGCAdjustTask.cpp line 111: > 109: marker->preserved_stack()->adjust_during_full_gc(); > 110: > 111: G1AdjustClosure adjust(collector()); Make a concession for code style, and name this local `_adjust`? Would save the renames everywhere else. src/hotspot/share/gc/g1/g1FullGCCompactionPoint.inline.hpp line 34: > 32: > 33: template > 34: void G1FullGCCompactionPoint::forward(oop object, size_t size) { You moved this to get the template instantiations ready to use? You can leave (and probably should leave) the method in `.cpp`, and instead do the explicit instantiation there, like: template G1FullGCCompactionPoint::forward; template G1FullGCCompactionPoint::forward; src/hotspot/share/gc/g1/g1FullGCCompactionPoint.inline.hpp line 66: > 64: } > 65: assert(object->forwardee() == NULL, "should be forwarded to NULL"); > 66: */ Still need this commented out? One more reason not to move the code to `.inline.hpp`. src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp line 68: > 66: > 67: template > 68: template inline void G1AdjustClosure::adjust_pointer(T* p) { Suggestion: template template inline void G1AdjustClosure::adjust_pointer(T* p) { src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp line 384: > 382: ShenandoahHeapRegionSet** const _worker_slices; > 383: > 384: template Again, keep this in place, do `public`/`private` declarations here. Would help Shenandoah backports. src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp line 797: > 795: > 796: template > 797: void work_impl(uint worker_id) { `public`/`private` is cleaner than code moves here, again. ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/32#pullrequestreview-1486009390 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233920802 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233922994 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233927907 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233928704 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233929270 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233935035 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233935519 From shade at openjdk.org Mon Jun 19 11:42:40 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 11:42:40 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops In-Reply-To: References: Message-ID: <7NroMMX4B3Jj3MJVOudDFMlE_eksbvGJKNiPNDKFo6E=.53a869a1-1d12-48b1-b935-c2e47e94efa7@github.com> On Mon, 19 Jun 2023 11:32:50 GMT, Aleksey Shipilev wrote: >> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. >> >> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 >> >> However, the changes differ significantly: >> - G1 serial compaction is different >> - There is no humongous compaction in JDK17 G1 >> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 >> >> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc -UCOH >> - [x] tier1 -XX:+UseG1GC >> - [x] tier1 -XX:+UseSerialGC >> - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) >> - [x] tier1 -XX:+UseG1GC -UCOH >> - [x] tier1 -XX:+UseSerialGC -UCOH >> - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) > > src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp line 68: > >> 66: >> 67: template >> 68: template inline void G1AdjustClosure::adjust_pointer(T* p) { > > Suggestion: > > template > template inline void G1AdjustClosure::adjust_pointer(T* p) { Actually, maybe you want to merge both `template` declarations? ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1233932083 From shade at openjdk.org Mon Jun 19 11:51:40 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 11:51:40 GMT Subject: [master] Integrated: 8310214: [Lilliput] Disable compact headers by default In-Reply-To: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> References: <_TV_8SiLhnrXOb5ME2Yot6SnRPScxirkpeZEggz9gkI=.8c3f102f-298b-41c8-9aaa-e29f977a7c65@github.com> Message-ID: <6XnxpGIXO0NMsVfz5CneMm7cNixsej6J5_-I66XvydE=.5570135c-441e-41b8-ab8c-d5760593e814@github.com> On Fri, 16 Jun 2023 15:22:00 GMT, Aleksey Shipilev wrote: > This would match the PRs that we eventually upstream, and would capture the tests that are failing/misbehaving without compact headers better. This would require enabling `UCOH` for testing explicitly. I took additional care to allow `@flagless` tests with `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders`. > > Additional testing: > - [x] Checked sample `@flagless` tests run with/without `UCOH` > - [x] Linux x86_64 tier1, out of box > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` This pull request has now been integrated. Changeset: 305e649f Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput/commit/305e649fec33786cf62bc1db8a4b015b51473187 Stats: 10 lines in 4 files changed: 6 ins; 0 del; 4 mod 8310214: [Lilliput] Disable compact headers by default Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput/pull/99 From shade at openjdk.org Mon Jun 19 11:51:41 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 19 Jun 2023 11:51:41 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310243: [Lilliput/JDK17] Revert UseCompressedClassPointers back to false In-Reply-To: References: Message-ID: On Fri, 16 Jun 2023 20:01:09 GMT, Aleksey Shipilev wrote: > Splitting this off #33 as atomic commit. This change is in the repo since initial import. > > Additional testing: > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders` > - [x] Linux x86_64 tier1, `-XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders` This pull request has now been integrated. Changeset: 4620715f Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/4620715feeca9820ddca92abff12b0478bb4ff08 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod 8310243: [Lilliput/JDK17] Revert UseCompressedClassPointers back to false Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/34 From rkennke at openjdk.org Mon Jun 19 14:22:56 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 14:22:56 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8308411: [Lilliput/JDK17] Cherry-pick: 8283710: JVMTI: Use BitSet for object marking [v3] In-Reply-To: References: Message-ID: > This ports the original https://github.com/openjdk/jdk/pull/7964 to Lilliput/JDK17. It also includes the follow-up (cosmetic) fixes https://bugs.openjdk.org/browse/JDK-8284687 and https://bugs.openjdk.org/browse/JDK-8284725. > > Testing: > - [x] tier1 > - [x] serviceability/jvmti > - [x] vmTestbase/nsk/jvmti Roman Kennke 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 six additional commits since the last revision: - Merge branch 'lilliput' into JDK-8308411 - Merge branch 'lilliput' into JDK-8308411 - Some follow-ups - 8283710: JVMTI: Use BitSet for object marking Reviewed-by: stuefe, coleenp - 8283710: JVMTI: Use BitSet for object marking Reviewed-by: stuefe, coleenp - Revert ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/21/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/21/files/d2d6123e..8e243dc2 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=21&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=21&range=01-02 Stats: 1131 lines in 58 files changed: 735 ins; 133 del; 263 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/21.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/21/head:pull/21 PR: https://git.openjdk.org/lilliput-jdk17u/pull/21 From rkennke at openjdk.org Mon Jun 19 14:56:44 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 14:56:44 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops In-Reply-To: References: Message-ID: On Mon, 19 Jun 2023 11:27:22 GMT, Aleksey Shipilev wrote: >> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. >> >> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 >> >> However, the changes differ significantly: >> - G1 serial compaction is different >> - There is no humongous compaction in JDK17 G1 >> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 >> >> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc -UCOH >> - [x] tier1 -XX:+UseG1GC >> - [x] tier1 -XX:+UseSerialGC >> - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) >> - [x] tier1 -XX:+UseG1GC -UCOH >> - [x] tier1 -XX:+UseSerialGC -UCOH >> - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) > > src/hotspot/share/gc/g1/g1FullGCAdjustTask.cpp line 111: > >> 109: marker->preserved_stack()->adjust_during_full_gc(); >> 110: >> 111: G1AdjustClosure adjust(collector()); > > Make a concession for code style, and name this local `_adjust`? Would save the renames everywhere else. I would keep the _adjust -> adjust renaming changes as they are. I make this change once (or twice, again when actually upstreaming), but it's going to raise eyebrows whenever somebody reads this code. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234172438 From rkennke at openjdk.org Mon Jun 19 15:01:43 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 15:01:43 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops In-Reply-To: <7NroMMX4B3Jj3MJVOudDFMlE_eksbvGJKNiPNDKFo6E=.53a869a1-1d12-48b1-b935-c2e47e94efa7@github.com> References: <7NroMMX4B3Jj3MJVOudDFMlE_eksbvGJKNiPNDKFo6E=.53a869a1-1d12-48b1-b935-c2e47e94efa7@github.com> Message-ID: <2b0GK5Nbw0Y92d5UN89cx7nplf_gXNtvFc8OKd1MhUk=.7f01601f-f37b-4072-b624-1e489ea43789@github.com> On Mon, 19 Jun 2023 11:35:13 GMT, Aleksey Shipilev wrote: >> src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp line 68: >> >>> 66: >>> 67: template >>> 68: template inline void G1AdjustClosure::adjust_pointer(T* p) { >> >> Suggestion: >> >> template >> template inline void G1AdjustClosure::adjust_pointer(T* p) { > > Actually, maybe you want to merge both `template` declarations? I don't think they can be merged. The first is a class-level template, the second is the method-level template. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234177802 From rkennke at openjdk.org Mon Jun 19 15:25:51 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 19 Jun 2023 15:25:51 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v2] In-Reply-To: References: Message-ID: > We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. > > This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 > > However, the changes differ significantly: > - G1 serial compaction is different > - There is no humongous compaction in JDK17 G1 > - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 > > I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc -UCOH > - [x] tier1 -XX:+UseG1GC > - [x] tier1 -XX:+UseSerialGC > - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) > - [x] tier1 -XX:+UseG1GC -UCOH > - [x] tier1 -XX:+UseSerialGC -UCOH > - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: @shipilev's comments ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/32/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/32/files/29790aff..e1d4c54d Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=00-01 Stats: 279 lines in 22 files changed: 103 ins; 128 del; 48 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/32.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/32/head:pull/32 PR: https://git.openjdk.org/lilliput-jdk17u/pull/32 From shade at openjdk.org Tue Jun 20 09:00:32 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 09:00:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v2] In-Reply-To: References: Message-ID: <7l-j8y4-10bCg2-G9pJAGb-YAWY8mO7qLccj3eHX_eg=.ce98698b-3b5a-437f-9142-ee074fe5c8cd@github.com> On Mon, 19 Jun 2023 14:54:09 GMT, Roman Kennke wrote: >> src/hotspot/share/gc/g1/g1FullGCAdjustTask.cpp line 111: >> >>> 109: marker->preserved_stack()->adjust_during_full_gc(); >>> 110: >>> 111: G1AdjustClosure adjust(collector()); >> >> Make a concession for code style, and name this local `_adjust`? Would save the renames everywhere else. > > I would keep the _adjust -> adjust renaming changes as they are. I make this change once (or twice, again when actually upstreaming), but it's going to raise eyebrows whenever somebody reads this code. Okay. I was mostly concerned about the future backports in the adjacent code, but those conflict would likely be resolvable without much of a problem. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234960265 From shade at openjdk.org Tue Jun 20 09:00:33 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 09:00:33 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v2] In-Reply-To: <2b0GK5Nbw0Y92d5UN89cx7nplf_gXNtvFc8OKd1MhUk=.7f01601f-f37b-4072-b624-1e489ea43789@github.com> References: <7NroMMX4B3Jj3MJVOudDFMlE_eksbvGJKNiPNDKFo6E=.53a869a1-1d12-48b1-b935-c2e47e94efa7@github.com> <2b0GK5Nbw0Y92d5UN89cx7nplf_gXNtvFc8OKd1MhUk=.7f01601f-f37b-4072-b624-1e489ea43789@github.com> Message-ID: On Mon, 19 Jun 2023 14:59:00 GMT, Roman Kennke wrote: >> Actually, maybe you want to merge both `template` declarations? > > I don't think they can be merged. The first is a class-level template, the second is the method-level template. Right. Nevermind. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234958948 From shade at openjdk.org Tue Jun 20 09:29:32 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 09:29:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v2] In-Reply-To: References: Message-ID: On Mon, 19 Jun 2023 15:25:51 GMT, Roman Kennke wrote: >> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. >> >> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 >> >> However, the changes differ significantly: >> - G1 serial compaction is different >> - There is no humongous compaction in JDK17 G1 >> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 >> >> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc -UCOH >> - [x] tier1 -XX:+UseG1GC >> - [x] tier1 -XX:+UseSerialGC >> - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) >> - [x] tier1 -XX:+UseG1GC -UCOH >> - [x] tier1 -XX:+UseSerialGC -UCOH >> - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > @shipilev's comments More comments. It feels like all this template mess is quite intrusive, but I cannot find a better way to do this :/ Anyway, this gets us closer: src/hotspot/share/gc/g1/g1FullCollector.cpp line 33: > 31: #include "gc/g1/g1FullGCAdjustTask.hpp" > 32: #include "gc/g1/g1FullGCCompactTask.hpp" > 33: #include "gc/g1/g1FullGCCompactionPoint.hpp" This include is still needed, or? src/hotspot/share/gc/g1/g1FullGCPrepareTask.hpp line 58: > 56: class G1CalculatePointersClosure : public HeapRegionClosure { > 57: private: > 58: template Unnecessary change? src/hotspot/share/gc/serial/markSweep.hpp line 139: > 137: // Save the mark word so it can be restored later > 138: template > 139: static void adjust_marks(); // Adjust the pointers in the preserved marks table This feels like `adjust_marks_impl`? Because it nominally clashes with existing non-templated `adjust_marks` a line below? src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp line 832: > 830: PreservedMarksSet* _preserved_marks; > 831: > 832: template Keep this one in place, like others: use `public`/`private` to scope it right. src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp line 923: > 921: } > 922: public: > 923: ShenandoahCompactObjectsTask(ShenandoahHeapRegionSet** worker_slices) : Same, keep it in place? ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/32#pullrequestreview-1487682460 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234974824 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234985003 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234989652 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234993926 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234994390 From rkennke at openjdk.org Tue Jun 20 10:23:25 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 20 Jun 2023 10:23:25 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v3] In-Reply-To: References: Message-ID: > We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. > > This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 > > However, the changes differ significantly: > - G1 serial compaction is different > - There is no humongous compaction in JDK17 G1 > - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 > > I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc -UCOH > - [x] tier1 -XX:+UseG1GC > - [x] tier1 -XX:+UseSerialGC > - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) > - [x] tier1 -XX:+UseG1GC -UCOH > - [x] tier1 -XX:+UseSerialGC -UCOH > - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: More @shipilev comments ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/32/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/32/files/e1d4c54d..3749387a Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=01-02 Stats: 38 lines in 5 files changed: 18 ins; 15 del; 5 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/32.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/32/head:pull/32 PR: https://git.openjdk.org/lilliput-jdk17u/pull/32 From shade at openjdk.org Tue Jun 20 10:30:34 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 10:30:34 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v3] In-Reply-To: References: Message-ID: <0TGI-xRszJbsAeVaa_jT4VS4gWkyzNSOuIWp2Ssu3Sw=.5d0163c9-2ac9-4e32-9e06-68cce9289229@github.com> On Tue, 20 Jun 2023 10:23:25 GMT, Roman Kennke wrote: >> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. >> >> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 >> >> However, the changes differ significantly: >> - G1 serial compaction is different >> - There is no humongous compaction in JDK17 G1 >> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 >> >> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc -UCOH >> - [x] tier1 -XX:+UseG1GC >> - [x] tier1 -XX:+UseSerialGC >> - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) >> - [x] tier1 -XX:+UseG1GC -UCOH >> - [x] tier1 -XX:+UseSerialGC -UCOH >> - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > More @shipilev comments One more: ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/32#pullrequestreview-1487822884 From shade at openjdk.org Tue Jun 20 10:30:34 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 10:30:34 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v2] In-Reply-To: References: Message-ID: <3fJMsWiR4WLQzzOAq9PEkYH2jhsGT6i_fQ70jWjYS9s=.b5a6e8ac-1fbd-4d3f-99c1-495e2d410b69@github.com> On Tue, 20 Jun 2023 09:25:06 GMT, Aleksey Shipilev wrote: >> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: >> >> @shipilev's comments > > src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp line 832: > >> 830: PreservedMarksSet* _preserved_marks; >> 831: >> 832: template > > Keep this one in place, like others: use `public`/`private` to scope it right. This is still not fixed, I think. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1235064690 From rkennke at openjdk.org Tue Jun 20 10:35:58 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 20 Jun 2023 10:35:58 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v4] In-Reply-To: References: Message-ID: > We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. > > This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 > > However, the changes differ significantly: > - G1 serial compaction is different > - There is no humongous compaction in JDK17 G1 > - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 > > I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc -UCOH > - [x] tier1 -XX:+UseG1GC > - [x] tier1 -XX:+UseSerialGC > - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) > - [x] tier1 -XX:+UseG1GC -UCOH > - [x] tier1 -XX:+UseSerialGC -UCOH > - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: One more ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/32/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/32/files/3749387a..e2bf1029 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=03 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=32&range=02-03 Stats: 13 lines in 1 file changed: 8 ins; 5 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/32.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/32/head:pull/32 PR: https://git.openjdk.org/lilliput-jdk17u/pull/32 From shade at openjdk.org Tue Jun 20 10:56:33 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 20 Jun 2023 10:56:33 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops [v4] In-Reply-To: References: Message-ID: On Tue, 20 Jun 2023 10:35:58 GMT, Roman Kennke wrote: >> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. >> >> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 >> >> However, the changes differ significantly: >> - G1 serial compaction is different >> - There is no humongous compaction in JDK17 G1 >> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 >> >> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc -UCOH >> - [x] tier1 -XX:+UseG1GC >> - [x] tier1 -XX:+UseSerialGC >> - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) >> - [x] tier1 -XX:+UseG1GC -UCOH >> - [x] tier1 -XX:+UseSerialGC -UCOH >> - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > One more Looks good for Lilliput JDK 17! We would need to trawl through the difference against upstream, as all PRs land, and that might produce some adjustments to the code introduced in this PR. ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/32#pullrequestreview-1487864645 From rkennke at openjdk.org Tue Jun 20 14:34:35 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 20 Jun 2023 14:34:35 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310156: [Lilliput/JDK17] Specialize full-GC loops In-Reply-To: References: Message-ID: <4AW1nsV6-81aXAeX7CVtEtS0A40_80LU6puDDpgZsPQ=.be7f35f0-7427-499a-be94-d9412f3e3d53@github.com> On Thu, 15 Jun 2023 15:59:34 GMT, Roman Kennke wrote: > We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized. > > This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65 > > However, the changes differ significantly: > - G1 serial compaction is different > - There is no humongous compaction in JDK17 G1 > - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22 > > I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc -UCOH > - [x] tier1 -XX:+UseG1GC > - [x] tier1 -XX:+UseSerialGC > - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either) > - [x] tier1 -XX:+UseG1GC -UCOH > - [x] tier1 -XX:+UseSerialGC -UCOH > - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either) This pull request has now been integrated. Changeset: eee9bfe1 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/eee9bfe1f2ebdb2627907fa63a2c239da3aff533 Stats: 316 lines in 24 files changed: 204 ins; 13 del; 99 mod 8310156: [Lilliput/JDK17] Specialize full-GC loops Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/32 From shade at openjdk.org Wed Jun 21 09:22:01 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 09:22:01 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList Message-ID: I would like to split it out of #35 to introduce this build-test system support atomically. This can be used even before #35 lands. The ProblemList gets automatically included if we add `-XX:+UseCompactObjectHeaders` in the jtreg invocation. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/36/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=36&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310529 Stats: 34 lines in 2 files changed: 34 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/36.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/36/head:pull/36 PR: https://git.openjdk.org/lilliput-jdk17u/pull/36 From rkennke at openjdk.org Wed Jun 21 09:22:02 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 09:22:02 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:13:12 GMT, Aleksey Shipilev wrote: > I would like to split it out of #35 to introduce this build-test system support atomically. This can be used even before #35 lands. The ProblemList gets automatically included if we add `-XX:+UseCompactObjectHeaders` in the jtreg invocation. Ok this makes sense. There might be Lilliput problem-listed tests that should be moved into the new list. ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/36#pullrequestreview-1490248559 From shade at openjdk.org Wed Jun 21 09:30:54 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 09:30:54 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList [v2] In-Reply-To: References: Message-ID: > I would like to split it out of #35 to introduce this build-test system support atomically. This can be used even before #35 lands. The ProblemList gets automatically included if we add `-XX:+UseCompactObjectHeaders` in the jtreg invocation. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Move existing Lilliput test items from generic list here ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/36/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/36/files/74947dc7..d4a3e094 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=36&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=36&range=00-01 Stats: 20 lines in 2 files changed: 10 ins; 10 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/36.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/36/head:pull/36 PR: https://git.openjdk.org/lilliput-jdk17u/pull/36 From shade at openjdk.org Wed Jun 21 09:30:57 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 09:30:57 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList [v2] In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:16:11 GMT, Roman Kennke wrote: > Ok this makes sense. There might be Lilliput problem-listed tests that should be moved into the new list. Right! Moved stuff from generic Hotspot problem list to Lilliput. Checked those tests run and pass with `-UCOH`, and skipped with `+UCOH`. See new commit. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/36#issuecomment-1600500849 From rkennke at openjdk.org Wed Jun 21 09:51:30 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 09:51:30 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList [v2] In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:30:54 GMT, Aleksey Shipilev wrote: >> I would like to split it out of #35 to introduce this build-test system support atomically. This can be used even before #35 lands. The ProblemList gets automatically included if we add `-XX:+UseCompactObjectHeaders` in the jtreg invocation. > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Move existing Lilliput test items from generic list here Marked as reviewed by rkennke (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/36#pullrequestreview-1490310243 From shade at openjdk.org Wed Jun 21 09:54:57 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 09:54:57 GMT Subject: [master] RFR: 8310528: [Lilliput] Provide infrastructure for Lilliput-specific ProblemList Message-ID: Same as https://github.com/openjdk/lilliput-jdk17u/pull/36 for JDK 17. But in here, I have not moved any current `ProblemList` items from a generic list to this list, because some of those tests fail even with `-UCOH`. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput/pull/100/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=100&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310528 Stats: 34 lines in 2 files changed: 34 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput/pull/100.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/100/head:pull/100 PR: https://git.openjdk.org/lilliput/pull/100 From rkennke at openjdk.org Wed Jun 21 09:54:58 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 09:54:58 GMT Subject: [master] RFR: 8310528: [Lilliput] Provide infrastructure for Lilliput-specific ProblemList In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:47:16 GMT, Aleksey Shipilev wrote: > Same as https://github.com/openjdk/lilliput-jdk17u/pull/36 for JDK 17. But in here, I have not moved any current `ProblemList` items from a generic list to this list, because some of those tests fail even with `-UCOH`. Ok! ------------- Marked as reviewed by rkennke (Lead). PR Review: https://git.openjdk.org/lilliput/pull/100#pullrequestreview-1490311550 From shade at openjdk.org Wed Jun 21 13:31:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 13:31:38 GMT Subject: [master] RFR: 8310528: [Lilliput] Provide infrastructure for Lilliput-specific ProblemList In-Reply-To: References: Message-ID: <5pa2GRBpEOtrg-OQrPb0H8jqI7NF-wCDdqrhe9i3ipw=.4effbd2d-f9d8-40ba-99a7-e7793c089491@github.com> On Wed, 21 Jun 2023 09:47:16 GMT, Aleksey Shipilev wrote: > Same as https://github.com/openjdk/lilliput-jdk17u/pull/36 for JDK 17. But in here, I have not moved any current `ProblemList` items from a generic list to this list, because some of those tests fail even with `-UCOH`. Most tests are good, so I am integrating without waiting for (slow) Mac builds to complete. ------------- PR Comment: https://git.openjdk.org/lilliput/pull/100#issuecomment-1600812040 From shade at openjdk.org Wed Jun 21 13:39:42 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 13:39:42 GMT Subject: [master] Integrated: 8310528: [Lilliput] Provide infrastructure for Lilliput-specific ProblemList In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:47:16 GMT, Aleksey Shipilev wrote: > Same as https://github.com/openjdk/lilliput-jdk17u/pull/36 for JDK 17. But in here, I have not moved any current `ProblemList` items from a generic list to this list, because some of those tests fail even with `-UCOH`. This pull request has now been integrated. Changeset: e390d292 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput/commit/e390d292321267fd804ae5a7007dc782f311449a Stats: 34 lines in 2 files changed: 34 ins; 0 del; 0 mod 8310528: [Lilliput] Provide infrastructure for Lilliput-specific ProblemList Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput/pull/100 From shade at openjdk.org Wed Jun 21 13:40:39 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 13:40:39 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 09:13:12 GMT, Aleksey Shipilev wrote: > I would like to split it out of #35 to introduce this build-test system support atomically. This can be used even before #35 lands. The ProblemList gets automatically included if we add `-XX:+UseCompactObjectHeaders` in the jtreg invocation. This pull request has now been integrated. Changeset: 9143eade Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/9143eade039afebb648e51f9e3ae5aef39eec565 Stats: 54 lines in 3 files changed: 44 ins; 10 del; 0 mod 8310529: [Lilliput/JDK17] Provide infrastructure for Lilliput-specific ProblemList Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/36 From rkennke at openjdk.org Wed Jun 21 13:56:43 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 13:56:43 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310534: [Lilliput/JDK17] Shenandoah/JVMTI heap-walk crashes Message-ID: I observe a crash in JVMTI heap-walk code when running Shenandoah even with -UCOH, see bug report for details. The fix for now is to revert the relevant change back to clean upstream state. The JVMTI heap-dump would be disabled with +UCOH anyway in #35, and eventually fixed properly by #21. Testing: - [x] serviceability/jvmti/Heap/IterateHeapWithEscapeAnalysisEnabled.java TEST_VM_OPTS="-XX:+UseShenandoahGC" - [x] tier1 with TEST_VM_OPTS="-XX:+UseShenandoahGC" ------------- Commit messages: - [Lilliput/JDK17] Shenandoah/JVMTI heap-walk crashes Changes: https://git.openjdk.org/lilliput-jdk17u/pull/37/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=37&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310534 Stats: 4 lines in 1 file changed: 0 ins; 3 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/37.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/37/head:pull/37 PR: https://git.openjdk.org/lilliput-jdk17u/pull/37 From shade at openjdk.org Wed Jun 21 13:56:43 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 13:56:43 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310534: [Lilliput/JDK17] Shenandoah/JVMTI heap-walk crashes In-Reply-To: References: Message-ID: <0P6IdcHUdhf6d_bcTBs0fOeqABsIY3FIObHche_b87M=.a0e25a40-9018-4a9e-8fd7-144dffde8973@github.com> On Wed, 21 Jun 2023 12:24:20 GMT, Roman Kennke wrote: > I observe a crash in JVMTI heap-walk code when running Shenandoah even with -UCOH, see bug report for details. > > The fix for now is to revert the relevant change back to clean upstream state. The JVMTI heap-dump would be disabled with +UCOH anyway in #35, and eventually fixed properly by #21. > > Testing: > - [x] serviceability/jvmti/Heap/IterateHeapWithEscapeAnalysisEnabled.java TEST_VM_OPTS="-XX:+UseShenandoahGC" > - [x] tier1 with TEST_VM_OPTS="-XX:+UseShenandoahGC" Looks fine! Needs a bug ID for bots to be happy. ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/37#pullrequestreview-1490681753 From shade at openjdk.org Wed Jun 21 14:24:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 14:24:38 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers Message-ID: We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. Additional testing: - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` ------------- Commit messages: - Touchups after merge - Merge branch 'lilliput' into JDK-8310427-jfr-jvmti-broken - Mention proper bug IDs in problem list - Add problemlists - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/35/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=35&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310427 Stats: 84 lines in 4 files changed: 80 ins; 0 del; 4 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/35.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/35/head:pull/35 PR: https://git.openjdk.org/lilliput-jdk17u/pull/35 From rkennke at openjdk.org Wed Jun 21 14:24:38 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 14:24:38 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers In-Reply-To: References: Message-ID: On Tue, 20 Jun 2023 15:42:30 GMT, Aleksey Shipilev wrote: > We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. > > Additional testing: > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` May be better to use 8308296 and 8308411 as bug IDs? ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/35#issuecomment-1600794464 From shade at openjdk.org Wed Jun 21 14:37:51 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 14:37:51 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers [v2] In-Reply-To: References: Message-ID: <81QxUmxtciAGs3cDVQyzhrWSXFsIraRAr7HyeL9RcdI=.8c95cfb0-aea0-4f15-9bfe-1bbfdb1c2af7@github.com> > We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. > > Additional testing: > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Use other bug IDs ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/35/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/35/files/e86001da..cc4f0bde Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=35&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=35&range=00-01 Stats: 52 lines in 1 file changed: 0 ins; 0 del; 52 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/35.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/35/head:pull/35 PR: https://git.openjdk.org/lilliput-jdk17u/pull/35 From shade at openjdk.org Wed Jun 21 14:37:53 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 14:37:53 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 13:01:55 GMT, Roman Kennke wrote: > May be better to use 8308296 and 8308411 as bug IDs? Yes. Changed! ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/35#issuecomment-1600951874 From shade at openjdk.org Wed Jun 21 14:41:42 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 14:41:42 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310531: [Lilliput/JDK17] Revert unnecessary test code modifications and fix the tests Message-ID: I have walked through the diff against 17u upstream, and reverted the disabled tests that pass with both `+UCOH` and `-UCOH`, and fixes a few others to work with `+UCOH` correctly. This brings us very close to 17u upstream testing-wise. ------------- Commit messages: - Revert ObjectCountEventVerifier.java - Fix GetObjectSizeIntrinsicsTest.java for -UCOH / +UCOH - Revert runtime/cds/appcds/TestZGCWithCDS.java - Revert runtime/cds/appcds/TestCombinedCompressedFlags.java - Revert runtime/cds/appcds/CommandLineFlagComboNegative.java - Revert runtime/Monitor/SyncOnValueBasedClassTest.java - Revert PrintMetaspaceDcmd.java - Revert FieldDensityTests.java - Revert runtime/CompressedOops/ - Revert MetaspaceUtilsGtests.java - ... and 5 more: https://git.openjdk.org/lilliput-jdk17u/compare/9143eade...dddf566b Changes: https://git.openjdk.org/lilliput-jdk17u/pull/38/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=38&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310531 Stats: 225 lines in 16 files changed: 163 ins; 22 del; 40 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/38.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/38/head:pull/38 PR: https://git.openjdk.org/lilliput-jdk17u/pull/38 From rkennke at openjdk.org Wed Jun 21 14:41:42 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 14:41:42 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310531: [Lilliput/JDK17] Revert unnecessary test code modifications and fix the tests In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 14:30:44 GMT, Aleksey Shipilev wrote: > I have walked through the diff against 17u upstream, and reverted the disabled tests that pass with both `+UCOH` and `-UCOH`, and fixes a few others to work with `+UCOH` correctly. This brings us very close to 17u upstream testing-wise. Looks good! Thanks! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/38#pullrequestreview-1490941797 From shade at openjdk.org Wed Jun 21 15:15:37 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 15:15:37 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310555: [Lilliput/JDK17] Revert innocuous changes against upstream Message-ID: The code trawl identified a few places where we diverge from upstream without reason. The only non-obvious change is reverting `set_deadlock(true)` thing. The results that method is setting is actually unused, see https://bugs.openjdk.org/browse/JDK-8268857. ------------- Commit messages: - Work Changes: https://git.openjdk.org/lilliput-jdk17u/pull/39/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=39&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310555 Stats: 7 lines in 3 files changed: 3 ins; 2 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/39.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/39/head:pull/39 PR: https://git.openjdk.org/lilliput-jdk17u/pull/39 From rkennke at openjdk.org Wed Jun 21 15:33:34 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 15:33:34 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310555: [Lilliput/JDK17] Revert innocuous changes against upstream In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:07:18 GMT, Aleksey Shipilev wrote: > The code trawl identified a few places where we diverge from upstream without reason. > > The only non-obvious change is reverting `set_deadlock(true)` thing. The results that method is setting is actually unused, see https://bugs.openjdk.org/browse/JDK-8268857. Good! (How did the threadService.cpp change happen? WTF.) ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/39#pullrequestreview-1491083226 From shade at openjdk.org Wed Jun 21 15:46:31 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 15:46:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310558: [Lilliput/JDK17] Missing klass gap initialization in ContiguousSpace::allocate_temporary_filler Message-ID: Minor thing, but still. This is Lilliput JDK 17 specific, later versions have [JDK-8278568](https://bugs.openjdk.org/browse/JDK-8278568) refactoring. We have missed the `set_klass_gap(0)` line in the patch here: } else { assert(size == CollectedHeap::min_fill_size(), "size for smallest fake object doesn't match"); instanceOop obj = (instanceOop) cast_to_oop(allocate(size)); - obj->set_mark(markWord::prototype()); - obj->set_klass_gap(0); - obj->set_klass(vmClasses::Object_klass()); + if (UseCompactObjectHeaders) { + obj->set_mark(vmClasses::Object_klass()->prototype_header()); + } else { + obj->set_mark(markWord::prototype()); + obj->set_klass(vmClasses::Object_klass()); + } } } I had to restore the klass gap methods in `oop`, which also limits the impact we have on upstream code. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/40/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=40&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310558 Stats: 13 lines in 3 files changed: 13 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/40.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/40/head:pull/40 PR: https://git.openjdk.org/lilliput-jdk17u/pull/40 From rkennke at openjdk.org Wed Jun 21 15:57:33 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 15:57:33 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310558: [Lilliput/JDK17] Missing klass gap initialization in ContiguousSpace::allocate_temporary_filler In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:39:35 GMT, Aleksey Shipilev wrote: > Minor thing, but still. > > This is Lilliput JDK 17 specific, later versions have [JDK-8278568](https://bugs.openjdk.org/browse/JDK-8278568) refactoring. > > We have missed the `set_klass_gap(0)` line in the patch here: > > > } else { > assert(size == CollectedHeap::min_fill_size(), > "size for smallest fake object doesn't match"); > instanceOop obj = (instanceOop) cast_to_oop(allocate(size)); > - obj->set_mark(markWord::prototype()); > - obj->set_klass_gap(0); > - obj->set_klass(vmClasses::Object_klass()); > + if (UseCompactObjectHeaders) { > + obj->set_mark(vmClasses::Object_klass()->prototype_header()); > + } else { > + obj->set_mark(markWord::prototype()); > + obj->set_klass(vmClasses::Object_klass()); > + } > } > } > > > I had to restore the klass gap methods in `oop`, which also limits the impact we have on upstream code. Marked as reviewed by rkennke (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/40#pullrequestreview-1491136595 From rkennke at openjdk.org Wed Jun 21 16:01:33 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 16:01:33 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310534: [Lilliput/JDK17] Shenandoah/JVMTI heap-walk crashes In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 12:24:20 GMT, Roman Kennke wrote: > I observe a crash in JVMTI heap-walk code when running Shenandoah even with -UCOH, see bug report for details. > > The fix for now is to revert the relevant change back to clean upstream state. The JVMTI heap-dump would be disabled with +UCOH anyway in #35, and eventually fixed properly by #21. > > Testing: > - [x] serviceability/jvmti/Heap/IterateHeapWithEscapeAnalysisEnabled.java TEST_VM_OPTS="-XX:+UseShenandoahGC" > - [x] tier1 with TEST_VM_OPTS="-XX:+UseShenandoahGC" This pull request has now been integrated. Changeset: d7886d36 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/d7886d36fb0c702a0a68f2c396af09d8873ef60d Stats: 4 lines in 1 file changed: 0 ins; 3 del; 1 mod 8310534: [Lilliput/JDK17] Shenandoah/JVMTI heap-walk crashes Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/37 From rkennke at openjdk.org Wed Jun 21 16:53:28 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 21 Jun 2023 16:53:28 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers [v2] In-Reply-To: <81QxUmxtciAGs3cDVQyzhrWSXFsIraRAr7HyeL9RcdI=.8c95cfb0-aea0-4f15-9bfe-1bbfdb1c2af7@github.com> References: <81QxUmxtciAGs3cDVQyzhrWSXFsIraRAr7HyeL9RcdI=.8c95cfb0-aea0-4f15-9bfe-1bbfdb1c2af7@github.com> Message-ID: On Wed, 21 Jun 2023 14:37:51 GMT, Aleksey Shipilev wrote: >> We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. >> >> Additional testing: >> - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures >> - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` >> - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default >> - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` >> - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default >> - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Use other bug IDs Looks good, thanks ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/35#pullrequestreview-1491248993 From shade at openjdk.org Wed Jun 21 17:11:28 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 17:11:28 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310555: [Lilliput/JDK17] Revert innocuous changes against upstream In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:07:18 GMT, Aleksey Shipilev wrote: > The code trawl identified a few places where we diverge from upstream without reason. > > The only non-obvious change is reverting `set_deadlock(true)` thing. The results that method is setting is actually unused, see https://bugs.openjdk.org/browse/JDK-8268857. Testing looks clean enough. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/39#issuecomment-1601249776 From shade at openjdk.org Wed Jun 21 17:14:27 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 17:14:27 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310555: [Lilliput/JDK17] Revert innocuous changes against upstream In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:07:18 GMT, Aleksey Shipilev wrote: > The code trawl identified a few places where we diverge from upstream without reason. > > The only non-obvious change is reverting `set_deadlock(true)` thing. The results that method is setting is actually unused, see https://bugs.openjdk.org/browse/JDK-8268857. This pull request has now been integrated. Changeset: 3007185a Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/3007185ad81a12bdfbf299200c93b174f492211f Stats: 7 lines in 3 files changed: 3 ins; 2 del; 2 mod 8310555: [Lilliput/JDK17] Revert innocuous changes against upstream Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/39 From shade at openjdk.org Wed Jun 21 17:42:28 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 17:42:28 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers [v2] In-Reply-To: <81QxUmxtciAGs3cDVQyzhrWSXFsIraRAr7HyeL9RcdI=.8c95cfb0-aea0-4f15-9bfe-1bbfdb1c2af7@github.com> References: <81QxUmxtciAGs3cDVQyzhrWSXFsIraRAr7HyeL9RcdI=.8c95cfb0-aea0-4f15-9bfe-1bbfdb1c2af7@github.com> Message-ID: <1i3Mvp36r1zRWMHqImWgpM__NG4YEEkggzxN_XhlsYs=.ceee7b08-8d9e-406e-8e71-e9002fa4f4c7@github.com> On Wed, 21 Jun 2023 14:37:51 GMT, Aleksey Shipilev wrote: >> We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. >> >> Additional testing: >> - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures >> - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` >> - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default >> - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` >> - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default >> - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Use other bug IDs Testing looks clean. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/35#issuecomment-1601301378 From shade at openjdk.org Wed Jun 21 17:42:29 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 17:42:29 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers In-Reply-To: References: Message-ID: On Tue, 20 Jun 2023 15:42:30 GMT, Aleksey Shipilev wrote: > We have at least two things missing in 17u to make Lilliput safe: [JDK-8283710](https://bugs.openjdk.org/browse/JDK-8283710) and [JDK-8275415](https://bugs.openjdk.org/browse/JDK-8275415). Backporting those things is intrusive and could take a while. Meanwhile, we need to protect user code from entering those paths when compact headers are enabled. > > Additional testing: > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `UCOH` disabled by default; some pre-existing failures > - [x] Linux x86_64 fastdebug, `jdk/jfr`, `+UCOH` > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `serviceability/jvmti`, `+UCOH` > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `UCOH` disabled by default > - [x] Linux x86_64 fastdebug `vmTestbase/nsk/jvmti`, `+UCOH` This pull request has now been integrated. Changeset: 626ff70c Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/626ff70ce5f63188d32f99c20d5806fff8db9a7d Stats: 84 lines in 4 files changed: 80 ins; 0 del; 4 mod 8310427: [Lilliput/JDK17] Protect from running broken JFR and JVMTI code with compact headers Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/35 From shade at openjdk.org Wed Jun 21 18:08:33 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 18:08:33 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310531: [Lilliput/JDK17] Revert unnecessary test code modifications and fix the tests In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 14:30:44 GMT, Aleksey Shipilev wrote: > I have walked through the diff against 17u upstream, and reverted the disabled tests that pass with both `+UCOH` and `-UCOH`, and fixes a few others to work with `+UCOH` correctly. This brings us very close to 17u upstream testing-wise. > > Additional testing: > - [x] Linux x86_64 fastdebug, `tier1` (default, `-UCOH`) > - [x] Linux x86_64 fastdebug, `tier1` (`+UCOH`) Testing looks fine. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/38#issuecomment-1601331897 From shade at openjdk.org Wed Jun 21 18:08:33 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 18:08:33 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310531: [Lilliput/JDK17] Revert unnecessary test code modifications and fix the tests In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 14:30:44 GMT, Aleksey Shipilev wrote: > I have walked through the diff against 17u upstream, and reverted the disabled tests that pass with both `+UCOH` and `-UCOH`, and fixes a few others to work with `+UCOH` correctly. This brings us very close to 17u upstream testing-wise. > > Additional testing: > - [x] Linux x86_64 fastdebug, `tier1` (default, `-UCOH`) > - [x] Linux x86_64 fastdebug, `tier1` (`+UCOH`) This pull request has now been integrated. Changeset: 5ea89cfc Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/5ea89cfc11e721e56688f5bc8c53db2e6b2c6fd8 Stats: 225 lines in 16 files changed: 163 ins; 22 del; 40 mod 8310531: [Lilliput/JDK17] Revert unnecessary test code modifications and fix the tests Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/38 From shade at openjdk.org Wed Jun 21 18:37:27 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 18:37:27 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310558: [Lilliput/JDK17] Missing klass gap initialization in ContiguousSpace::allocate_temporary_filler In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:39:35 GMT, Aleksey Shipilev wrote: > Minor thing, but still. > > This is Lilliput JDK 17 specific, later versions have [JDK-8278568](https://bugs.openjdk.org/browse/JDK-8278568) refactoring. > > We have missed the `set_klass_gap(0)` line in the patch here: > > > } else { > assert(size == CollectedHeap::min_fill_size(), > "size for smallest fake object doesn't match"); > instanceOop obj = (instanceOop) cast_to_oop(allocate(size)); > - obj->set_mark(markWord::prototype()); > - obj->set_klass_gap(0); > - obj->set_klass(vmClasses::Object_klass()); > + if (UseCompactObjectHeaders) { > + obj->set_mark(vmClasses::Object_klass()->prototype_header()); > + } else { > + obj->set_mark(markWord::prototype()); > + obj->set_klass(vmClasses::Object_klass()); > + } > } > } > > > I had to restore the klass gap methods in `oop`, which also limits the impact we have on upstream code. There are some infra problems with testing. But GC tests have passed, so I am integrating. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/40#issuecomment-1601378213 From shade at openjdk.org Wed Jun 21 18:37:27 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 18:37:27 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310558: [Lilliput/JDK17] Missing klass gap initialization in ContiguousSpace::allocate_temporary_filler In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 15:39:35 GMT, Aleksey Shipilev wrote: > Minor thing, but still. > > This is Lilliput JDK 17 specific, later versions have [JDK-8278568](https://bugs.openjdk.org/browse/JDK-8278568) refactoring. > > We have missed the `set_klass_gap(0)` line in the patch here: > > > } else { > assert(size == CollectedHeap::min_fill_size(), > "size for smallest fake object doesn't match"); > instanceOop obj = (instanceOop) cast_to_oop(allocate(size)); > - obj->set_mark(markWord::prototype()); > - obj->set_klass_gap(0); > - obj->set_klass(vmClasses::Object_klass()); > + if (UseCompactObjectHeaders) { > + obj->set_mark(vmClasses::Object_klass()->prototype_header()); > + } else { > + obj->set_mark(markWord::prototype()); > + obj->set_klass(vmClasses::Object_klass()); > + } > } > } > > > I had to restore the klass gap methods in `oop`, which also limits the impact we have on upstream code. This pull request has now been integrated. Changeset: 1d73ede3 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/1d73ede33e9a79e20b5175d24abc50ef2fcee4fd Stats: 13 lines in 3 files changed: 13 ins; 0 del; 0 mod 8310558: [Lilliput/JDK17] Missing klass gap initialization in ContiguousSpace::allocate_temporary_filler Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/40 From shade at openjdk.org Wed Jun 21 18:49:31 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 21 Jun 2023 18:49:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310573: [Lilliput/JDK17] Revert assert removals for -UCOH paths Message-ID: We have plenty of removed asserts that were unsafe when +UCOH was enabled. But those asserts should persist and be active on -UCOH paths. This change reverts most of the assert removals. Additional testing: - [ ] Linux x86_64 fastdebug `tier1` (default, `-UCOH`) - [ ] Linux x86_64 fastdebug `tier1` (`+UCOH`) ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/41/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=41&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310573 Stats: 10 lines in 9 files changed: 9 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/41.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/41/head:pull/41 PR: https://git.openjdk.org/lilliput-jdk17u/pull/41 From rkennke at openjdk.org Thu Jun 22 09:49:32 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 22 Jun 2023 09:49:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310573: [Lilliput/JDK17] Revert assert removals for -UCOH paths In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 18:41:51 GMT, Aleksey Shipilev wrote: > We have plenty of removed asserts that were unsafe when +UCOH was enabled. But those asserts should persist and be active on -UCOH paths. This change reverts most of the assert removals. > > Additional testing: > - [x] Linux x86_64 fastdebug `tier1` (default, `-UCOH`) > - [x] Linux x86_64 fastdebug `tier1` (`+UCOH`) Very good, thank you! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/41#pullrequestreview-1492809848 From shade at openjdk.org Thu Jun 22 09:58:28 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 22 Jun 2023 09:58:28 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310573: [Lilliput/JDK17] Revert assert removals for -UCOH paths In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 18:41:51 GMT, Aleksey Shipilev wrote: > We have plenty of removed asserts that were unsafe when +UCOH was enabled. But those asserts should persist and be active on -UCOH paths. This change reverts most of the assert removals. > > Additional testing: > - [x] Linux x86_64 fastdebug `tier1` (default, `-UCOH`) > - [x] Linux x86_64 fastdebug `tier1` (`+UCOH`) Thanks! ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/41#issuecomment-1602350971 From shade at openjdk.org Thu Jun 22 09:58:29 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 22 Jun 2023 09:58:29 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310573: [Lilliput/JDK17] Revert assert removals for -UCOH paths In-Reply-To: References: Message-ID: On Wed, 21 Jun 2023 18:41:51 GMT, Aleksey Shipilev wrote: > We have plenty of removed asserts that were unsafe when +UCOH was enabled. But those asserts should persist and be active on -UCOH paths. This change reverts most of the assert removals. > > Additional testing: > - [x] Linux x86_64 fastdebug `tier1` (default, `-UCOH`) > - [x] Linux x86_64 fastdebug `tier1` (`+UCOH`) This pull request has now been integrated. Changeset: 0b4070aa Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/0b4070aaa5913ec199f00b68b3ee31c04aeb6368 Stats: 10 lines in 9 files changed: 9 ins; 0 del; 1 mod 8310573: [Lilliput/JDK17] Revert assert removals for -UCOH paths Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/41 From rkennke at openjdk.org Thu Jun 22 11:58:31 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 22 Jun 2023 11:58:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState Message-ID: G1ParScanThreadState::do_copy_to_survivor_space() has an unnecessary change against upstream: if (old_mark.is_marked()) { // Already forwarded by somebody else, return forwardee. return old->forwardee(old_mark); } All callers of this method already do the same, so this only adds code and possible affects performance for no reason. Testing: - [ ] hotspot_gc -UCOH - [ ] hotspot_gc +UCOH - [ ] tier1 -UCOH - [ ] tier1 +UCOH - [ ] tier2 -UCOH - [ ] tier2 +UCOH ------------- Commit messages: - 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState Changes: https://git.openjdk.org/lilliput-jdk17u/pull/42/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=42&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310642 Stats: 4 lines in 1 file changed: 0 ins; 4 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/42.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/42/head:pull/42 PR: https://git.openjdk.org/lilliput-jdk17u/pull/42 From shade at openjdk.org Thu Jun 22 12:06:41 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 22 Jun 2023 12:06:41 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState In-Reply-To: References: Message-ID: On Thu, 22 Jun 2023 11:51:39 GMT, Roman Kennke wrote: > G1ParScanThreadState::do_copy_to_survivor_space() has an unnecessary change against upstream: > > if (old_mark.is_marked()) { > // Already forwarded by somebody else, return forwardee. > return old->forwardee(old_mark); > } > > All callers of this method already do the same, so this only adds code and possible affects performance for no reason. > > Testing: > - [ ] hotspot_gc -UCOH > - [ ] hotspot_gc +UCOH > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH > - [ ] tier2 -UCOH > - [ ] tier2 +UCOH This looks good, thanks. ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/42#pullrequestreview-1493035324 From rkennke at openjdk.org Thu Jun 22 16:03:28 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 22 Jun 2023 16:03:28 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState In-Reply-To: References: Message-ID: <19_fwjPvnWmcHLchFoWgm3YGoft1-jrCn4L_WRLdxbI=.a09338e7-410e-46e0-8f92-c9373ff8f298@github.com> On Thu, 22 Jun 2023 11:51:39 GMT, Roman Kennke wrote: > G1ParScanThreadState::do_copy_to_survivor_space() has an unnecessary change against upstream: > > if (old_mark.is_marked()) { > // Already forwarded by somebody else, return forwardee. > return old->forwardee(old_mark); > } > > All callers of this method already do the same, so this only adds code and possible affects performance for no reason. > > Testing: > - [ ] hotspot_gc -UCOH > - [ ] hotspot_gc +UCOH > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH > - [ ] tier2 -UCOH > - [ ] tier2 +UCOH This pull request has now been integrated. Changeset: 7cfcdff4 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/7cfcdff4400469d5167991f4059f31f71105ea25 Stats: 4 lines in 1 file changed: 0 ins; 4 del; 0 mod 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/42 From rkennke at openjdk.org Thu Jun 22 16:14:37 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 22 Jun 2023 16:14:37 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C Message-ID: There's a severe bug in OptoRuntime::new_array_nozero_C() where we could end up clearing other memory because we add a byte-sized offset to a pointer base: HeapWord* obj = cast_from_oop(result); if (aligned_hs_bytes > hs_bytes) { Copy::zero_to_bytes(obj + hs_bytes, aligned_hs_bytes - hs_bytes); } This PR brings us to the same state as the proposed upstreaming PR https://github.com/openjdk/jdk/pull/11044 currently has. Two possible improvements to this PR: - Is it even worth clearing the unaligned head? Could we use Copy::fill_to_bytes() instead, and rely on that routine to do the split? - Should we guard the paths with if (UCOH) ? ------------- Commit messages: - 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C Changes: https://git.openjdk.org/lilliput-jdk17u/pull/43/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=43&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310662 Stats: 9 lines in 1 file changed: 3 ins; 1 del; 5 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/43.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/43/head:pull/43 PR: https://git.openjdk.org/lilliput-jdk17u/pull/43 From shade at openjdk.org Thu Jun 22 18:26:35 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 22 Jun 2023 18:26:35 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C In-Reply-To: References: Message-ID: <66i06i1FrwUefuO7Emcym21OaArlvZCTEWCsi7RswuM=.ab3fa527-a886-4018-95ac-49a6e34fecc5@github.com> On Thu, 22 Jun 2023 16:07:51 GMT, Roman Kennke wrote: > There's a severe bug in OptoRuntime::new_array_nozero_C() where we could end up clearing other memory because we add a byte-sized offset to a pointer base: > > > HeapWord* obj = cast_from_oop(result); > if (aligned_hs_bytes > hs_bytes) { > Copy::zero_to_bytes(obj + hs_bytes, aligned_hs_bytes - hs_bytes); > } > > > This PR brings us to the same state as the proposed upstreaming PR https://github.com/openjdk/jdk/pull/11044 currently has. > > Three possible improvements to this PR: > - Is it even worth clearing the unaligned head? Could we use Copy::fill_to_bytes() instead, and rely on that routine to do the split? > - Should we guard the paths with if (UCOH) ? > - I'm trying to come up with a reproducer, because that problem doesn't seem to have been caught by tests. This looks fine on its own, and by the symmetry with upstream PR. Not sure how can we protect this with `UCOH`? ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/43#pullrequestreview-1493778087 From shade at openjdk.org Thu Jun 22 19:01:30 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 22 Jun 2023 19:01:30 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList Message-ID: Running tier{1,2,3} shows more tests that do not work with +UCOH due to warnings. This adds the relevant entries to Lilliput ProblemList. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/44/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=44&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310670 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/44.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/44/head:pull/44 PR: https://git.openjdk.org/lilliput-jdk17u/pull/44 From rkennke at openjdk.org Thu Jun 22 21:21:39 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 22 Jun 2023 21:21:39 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C In-Reply-To: References: Message-ID: <15CCZ2kaWH4PPpnFHScb3kz2ZIWNhkFY6G2_Ino0VuQ=.14a4f70d-a7e9-4fd8-b490-1be505865db2@github.com> On Thu, 22 Jun 2023 16:07:51 GMT, Roman Kennke wrote: > There's a severe bug in OptoRuntime::new_array_nozero_C() where we could end up clearing other memory because we add a byte-sized offset to a pointer base: > > > HeapWord* obj = cast_from_oop(result); > if (aligned_hs_bytes > hs_bytes) { > Copy::zero_to_bytes(obj + hs_bytes, aligned_hs_bytes - hs_bytes); > } > > > This PR brings us to the same state as the proposed upstreaming PR https://github.com/openjdk/jdk/pull/11044 currently has. > > Three possible improvements to this PR: > - Is it even worth clearing the unaligned head? Could we use Copy::fill_to_bytes() instead, and rely on that routine to do the split? > - Should we guard the paths with if (UCOH) ? > - I'm trying to come up with a reproducer, because that problem doesn't seem to have been caught by tests. This pull request has now been integrated. Changeset: b575b53c Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/b575b53c84361ff47fc03c720be46dc6e63e4f01 Stats: 9 lines in 1 file changed: 3 ins; 1 del; 5 mod 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/43 From shade at openjdk.org Fri Jun 23 08:40:39 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 08:40:39 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList [v2] In-Reply-To: References: Message-ID: <2o9vpdAN1J6rAw0uSZm2wsuSvHl6oakDZ_-ElXTyddo=.2e52c61c-4252-4e01-b6c3-271f06fc78b1@github.com> > Running tier{1,2,3} shows more tests that do not work with +UCOH due to warnings. This adds the relevant entries to Lilliput ProblemList. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: More test exclusions from tier4 +UCOH runs ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/44/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/44/files/ecba7d5c..ebbee870 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=44&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=44&range=00-01 Stats: 62 lines in 1 file changed: 60 ins; 2 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/44.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/44/head:pull/44 PR: https://git.openjdk.org/lilliput-jdk17u/pull/44 From shade at openjdk.org Fri Jun 23 08:59:30 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 08:59:30 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList [v3] In-Reply-To: References: Message-ID: <0bcx1nkdqSOb2KQ9ZEp4ivFckgBQ3m5c_sf2U0YG0vI=.5426049c-75cb-42a1-a0f5-7cb67be7122c@github.com> > Running tier{1,2,3} shows more tests that do not work with +UCOH due to warnings. This adds the relevant entries to Lilliput ProblemList. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Fix/ignore ir_framework tests +UCOH ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/44/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/44/files/ebbee870..2551a5a5 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=44&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=44&range=01-02 Stats: 11 lines in 1 file changed: 10 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/44.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/44/head:pull/44 PR: https://git.openjdk.org/lilliput-jdk17u/pull/44 From rkennke at openjdk.org Fri Jun 23 09:29:27 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 09:29:27 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList [v3] In-Reply-To: <0bcx1nkdqSOb2KQ9ZEp4ivFckgBQ3m5c_sf2U0YG0vI=.5426049c-75cb-42a1-a0f5-7cb67be7122c@github.com> References: <0bcx1nkdqSOb2KQ9ZEp4ivFckgBQ3m5c_sf2U0YG0vI=.5426049c-75cb-42a1-a0f5-7cb67be7122c@github.com> Message-ID: On Fri, 23 Jun 2023 08:59:30 GMT, Aleksey Shipilev wrote: >> Running tier{1,2,3} shows more tests that do not work with +UCOH due to warnings. This adds the relevant entries to Lilliput ProblemList. > > Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: > > Fix/ignore ir_framework tests +UCOH Looks good! Thank you! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/44#pullrequestreview-1494794272 From shade at openjdk.org Fri Jun 23 09:42:33 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 09:42:33 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList In-Reply-To: References: Message-ID: On Thu, 22 Jun 2023 18:53:06 GMT, Aleksey Shipilev wrote: > Running tier{1,2,3} shows more tests that do not work with +UCOH due to warnings. This adds the relevant entries to Lilliput ProblemList. This pull request has now been integrated. Changeset: e47f5926 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/e47f59267f4ec3af24456e030f4de8560dda8cf8 Stats: 72 lines in 1 file changed: 71 ins; 0 del; 1 mod 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/44 From shade at openjdk.org Fri Jun 23 09:51:47 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 09:51:47 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments Message-ID: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> The diff against upstream shows there are a few test adjustment leftovers. These are not needed for -UCOH code. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/45/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=45&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310715 Stats: 3 lines in 2 files changed: 1 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/45.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/45/head:pull/45 PR: https://git.openjdk.org/lilliput-jdk17u/pull/45 From shade at openjdk.org Fri Jun 23 09:51:47 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 09:51:47 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments Message-ID: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> The diff against upstream shows there are a few test adjustment leftovers. These are not needed for -UCOH code. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/45/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=45&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310715 Stats: 3 lines in 2 files changed: 1 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/45.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/45/head:pull/45 PR: https://git.openjdk.org/lilliput-jdk17u/pull/45 From rkennke at openjdk.org Fri Jun 23 11:20:32 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 11:20:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments In-Reply-To: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> References: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> Message-ID: On Fri, 23 Jun 2023 09:45:34 GMT, Aleksey Shipilev wrote: > The diff against upstream shows there are a few test adjustment leftovers. These are not needed for -UCOH code. Looks good, thanks! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/45#pullrequestreview-1494954828 From shade at openjdk.org Fri Jun 23 11:43:25 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 11:43:25 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments In-Reply-To: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> References: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> Message-ID: On Fri, 23 Jun 2023 09:45:34 GMT, Aleksey Shipilev wrote: > The diff against upstream shows there are a few test adjustment leftovers. These are not needed for -UCOH code. Thanks! ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/45#issuecomment-1604160492 From shade at openjdk.org Fri Jun 23 11:43:25 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 11:43:25 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments In-Reply-To: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> References: <1-Lqh6j4H6iwsBzboLnHhgBQg5oPqykdujNOBiIs1e4=.731aed48-5909-446d-ae48-94426aa09232@github.com> Message-ID: On Fri, 23 Jun 2023 09:45:34 GMT, Aleksey Shipilev wrote: > The diff against upstream shows there are a few test adjustment leftovers. These are not needed for -UCOH code. This pull request has now been integrated. Changeset: 3b01e9d7 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/3b01e9d7e77418b3f6b3f1c437796a985c5eaf3a Stats: 3 lines in 2 files changed: 1 ins; 0 del; 2 mod 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/45 From rkennke at openjdk.org Fri Jun 23 13:02:48 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 13:02:48 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH Message-ID: In HeapRegion::object_iterate_impl() we currently enter the RESOLVE path when doing full-GC, regardless if it's +UCOH or -UCOH. We should only enter RESOLVE path with +UCOH. Testing: - [ ] hotspot_gc -UCOH - [ ] hotspot_gc +UCOH ------------- Commit messages: - Improve asserts - 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH Changes: https://git.openjdk.org/lilliput-jdk17u/pull/46/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=46&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310733 Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/46.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/46/head:pull/46 PR: https://git.openjdk.org/lilliput-jdk17u/pull/46 From shade at openjdk.org Fri Jun 23 13:15:24 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 13:15:24 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 12:53:26 GMT, Roman Kennke wrote: > In HeapRegion::object_iterate_impl() we currently enter the RESOLVE path when doing full-GC, regardless if it's +UCOH or -UCOH. We should only enter RESOLVE path with +UCOH. > > Testing: > - [ ] hotspot_gc -UCOH > - [ ] hotspot_gc +UCOH Looks good! ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/46#pullrequestreview-1495123194 From shade at openjdk.org Fri Jun 23 13:41:32 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 13:41:32 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310744: [Lilliput/JDK17] Revert C1_MacroAssembler::initialize_header removal of BiasedLocking path Message-ID: <1mbwW_sTXzOuyrZ7-_p2DjtruhBNxqSE7bdFxDuU_gQ=.8e3b2383-6fab-41e1-b123-03fd2ae1f064@github.com> In x86 C1_MacroAssembler::initialize_header, we accidentally removed the BiasedLocking path that should reach the klass prototype header. This reshapes x86 code to aarch64 code shape, which does the right thing. This is 17u-specific, as BiasedLocking is removed in later releases. Additional testing: - [ ] Linux x86_64 fastdebug `tier1 tier2` (default) - [ ] Linux x86_64 fastdebug `tier1 tier2` (+UCOH) ------------- Commit messages: - Fix Changes: https://git.openjdk.org/lilliput-jdk17u/pull/47/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=47&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310744 Stats: 4 lines in 1 file changed: 3 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/47.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/47/head:pull/47 PR: https://git.openjdk.org/lilliput-jdk17u/pull/47 From rkennke at openjdk.org Fri Jun 23 13:47:27 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 13:47:27 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310744: [Lilliput/JDK17] Revert C1_MacroAssembler::initialize_header removal of BiasedLocking path In-Reply-To: <1mbwW_sTXzOuyrZ7-_p2DjtruhBNxqSE7bdFxDuU_gQ=.8e3b2383-6fab-41e1-b123-03fd2ae1f064@github.com> References: <1mbwW_sTXzOuyrZ7-_p2DjtruhBNxqSE7bdFxDuU_gQ=.8e3b2383-6fab-41e1-b123-03fd2ae1f064@github.com> Message-ID: On Fri, 23 Jun 2023 13:34:48 GMT, Aleksey Shipilev wrote: > In x86 C1_MacroAssembler::initialize_header, we accidentally removed the BiasedLocking path that should reach the klass prototype header. This reshapes x86 code to aarch64 code shape, which does the right thing. > > This is 17u-specific, as BiasedLocking is removed in later releases. > > Additional testing: > - [ ] Linux x86_64 fastdebug `tier1 tier2` (default) > - [ ] Linux x86_64 fastdebug `tier1 tier2` (+UCOH) Looks good! ------------- Marked as reviewed by rkennke (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/47#pullrequestreview-1495179687 From rkennke at openjdk.org Fri Jun 23 13:49:02 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 13:49:02 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal Message-ID: We removed _metadata._klass field from JVMCI interfaces. This is no longer necessary since we introduced UseCompactObjectHeaders, with the caveat that JVMCI can only be used with -UCOH. Testing: - [ ] tier1 -UCOH - [ ] tier1 +UCOH ------------- Commit messages: - 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal Changes: https://git.openjdk.org/lilliput-jdk17u/pull/48/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=48&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310742 Stats: 7 lines in 3 files changed: 5 ins; 1 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/48.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/48/head:pull/48 PR: https://git.openjdk.org/lilliput-jdk17u/pull/48 From shade at openjdk.org Fri Jun 23 14:24:31 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 14:24:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 13:41:25 GMT, Roman Kennke wrote: > We removed _metadata._klass field from JVMCI interfaces. This is no longer necessary since we introduced UseCompactObjectHeaders, with the caveat that JVMCI can only be used with -UCOH. > > Testing: > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH Not sure in which order we run this method with the rest of flag initialization. I propose we move the disabling block closer to the rest of `UCOH` option checks in `arguments.cpp`. ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/48#pullrequestreview-1495248485 From rkennke at openjdk.org Fri Jun 23 15:21:29 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 15:21:29 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 14:21:39 GMT, Aleksey Shipilev wrote: > Not sure in which order we run this method with the rest of flag initialization. I propose we move the disabling block closer to the rest of `UCOH` option checks in `arguments.cpp`. It is tricky either way: I put it there because there it disables/enables UseJVMCICompiler, depending on other flags and conditions (actually, I need to double-check when unsupported GC might disable UseJVMCICompiler). I will figure out which order those flags are processed. Because if UCOH gets processed before JVMCI stuff, then we might be in trouble and already have enabled all the funny parts like locking, GC forwarding, etc. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/48#issuecomment-1604434267 From shade at openjdk.org Fri Jun 23 18:42:31 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 23 Jun 2023 18:42:31 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310744: [Lilliput/JDK17] Revert C1_MacroAssembler::initialize_header removal of BiasedLocking path In-Reply-To: <1mbwW_sTXzOuyrZ7-_p2DjtruhBNxqSE7bdFxDuU_gQ=.8e3b2383-6fab-41e1-b123-03fd2ae1f064@github.com> References: <1mbwW_sTXzOuyrZ7-_p2DjtruhBNxqSE7bdFxDuU_gQ=.8e3b2383-6fab-41e1-b123-03fd2ae1f064@github.com> Message-ID: On Fri, 23 Jun 2023 13:34:48 GMT, Aleksey Shipilev wrote: > In x86 C1_MacroAssembler::initialize_header, we accidentally removed the BiasedLocking path that should reach the klass prototype header. This reshapes x86 code to aarch64 code shape, which does the right thing. > > This is 17u-specific, as BiasedLocking is removed in later releases. > > Additional testing: > - [x] Linux x86_64 fastdebug `tier1 tier2` (default) > - [x] Linux x86_64 fastdebug `tier1 tier2` (+UCOH) This pull request has now been integrated. Changeset: 15030bf3 Author: Aleksey Shipilev URL: https://git.openjdk.org/lilliput-jdk17u/commit/15030bf37c1a38d202b9a9c22064af6743e29de5 Stats: 4 lines in 1 file changed: 3 ins; 0 del; 1 mod 8310744: [Lilliput/JDK17] Revert C1_MacroAssembler::initialize_header removal of BiasedLocking path Reviewed-by: rkennke ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/47 From rkennke at openjdk.org Fri Jun 23 18:44:34 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 18:44:34 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH In-Reply-To: References: Message-ID: <7WsbXLZ6TT5lfDlGFafKoXxwsiPs-S8re_aQ-fuwxDY=.e1e432c1-e362-494d-b2a2-624e47aa0c29@github.com> On Fri, 23 Jun 2023 12:53:26 GMT, Roman Kennke wrote: > In HeapRegion::object_iterate_impl() we currently enter the RESOLVE path when doing full-GC, regardless if it's +UCOH or -UCOH. We should only enter RESOLVE path with +UCOH. > > Testing: > - [x] hotspot_gc -UCOH > - [x] hotspot_gc +UCOH This pull request has now been integrated. Changeset: 3a7e2362 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/3a7e2362c873bfd113f7e4e1bed7e70bf9542918 Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 mod 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/46 From rkennke at openjdk.org Fri Jun 23 19:00:27 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 23 Jun 2023 19:00:27 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 13:41:25 GMT, Roman Kennke wrote: > We removed _metadata._klass field from JVMCI interfaces. This is no longer necessary since we introduced UseCompactObjectHeaders, with the caveat that JVMCI can only be used with -UCOH. > > Testing: > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH JVMCI args are checked before the UCOH args, via check_vm_args_consistency(). Which means that the patch is good as it is, I think. We wouldn't turn on LW locking, GC forwarding because of +UCOH and then turn off UCOH because of JVMCI. ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/48#issuecomment-1604728787 From shade at openjdk.org Mon Jun 26 07:38:30 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 26 Jun 2023 07:38:30 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 13:41:25 GMT, Roman Kennke wrote: > We removed _metadata._klass field from JVMCI interfaces. This is no longer necessary since we introduced UseCompactObjectHeaders, with the caveat that JVMCI can only be used with -UCOH. > > Testing: > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH Okay then! ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/48#pullrequestreview-1497851664 From rkennke at openjdk.org Mon Jun 26 07:55:31 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 26 Jun 2023 07:55:31 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal In-Reply-To: References: Message-ID: On Fri, 23 Jun 2023 13:41:25 GMT, Roman Kennke wrote: > We removed _metadata._klass field from JVMCI interfaces. This is no longer necessary since we introduced UseCompactObjectHeaders, with the caveat that JVMCI can only be used with -UCOH. > > Testing: > - [ ] tier1 -UCOH > - [ ] tier1 +UCOH This pull request has now been integrated. Changeset: 913e06eb Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/913e06eb801fb3bd863993f873b1469cb9d942d9 Stats: 7 lines in 3 files changed: 5 ins; 1 del; 1 mod 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/48 From rkennke at openjdk.org Thu Jun 29 10:11:29 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 29 Jun 2023 10:11:29 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code Message-ID: We have a bunch of ugly hacks in GC code paths where we do stuff like: if (UseCompactObjectHeaders) { // fetch object Klass* or size in a safe way... } else { // fetch object Klass* or size in the traditional way } This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. Testing: - [x] hotspot_gc - [x] hotspot_gc (+UCOH) - [x] tier1 - [x] tier1 (+ShenandoahGC) - [x] tier1 (+ParallelGC) - [x] tier1 (+SerialGC) - [x] tier1 (+UCOH) - [x] tier1 (+UCOH +ShenandoahGC) - [x] tier1 (+UCOH +ParallelGC) - [x] tier1 (+UCOH +SerialGC) - [ ] tier2 - [ ] tier2 (+UCOH) ------------- Commit messages: - Remove unused declaration - Safely access Klass* and size in G1 and Par promotion - 8310944: [Lilliput/JDK17] Streamline and cleanup GC code Changes: https://git.openjdk.org/lilliput-jdk17u/pull/50/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=50&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8310944 Stats: 292 lines in 15 files changed: 83 ins; 177 del; 32 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/50.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/50/head:pull/50 PR: https://git.openjdk.org/lilliput-jdk17u/pull/50 From rkennke at openjdk.org Thu Jun 29 11:02:31 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 29 Jun 2023 11:02:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v2] In-Reply-To: References: Message-ID: > We have a bunch of ugly hacks in GC code paths where we do stuff like: > if (UseCompactObjectHeaders) { > // fetch object Klass* or size in a safe way... > } else { > // fetch object Klass* or size in the traditional way > } > > This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. > > This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc (+UCOH) > - [x] tier1 > - [x] tier1 (+ShenandoahGC) > - [x] tier1 (+ParallelGC) > - [x] tier1 (+SerialGC) > - [x] tier1 (+UCOH) > - [x] tier1 (+UCOH +ShenandoahGC) > - [x] tier1 (+UCOH +ParallelGC) > - [x] tier1 (+UCOH +SerialGC) > - [ ] tier2 > - [ ] tier2 (+UCOH) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Remove unused method args ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/50/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/50/files/55c0b81e..f1783391 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=50&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=50&range=00-01 Stats: 6 lines in 2 files changed: 0 ins; 2 del; 4 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/50.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/50/head:pull/50 PR: https://git.openjdk.org/lilliput-jdk17u/pull/50 From shade at openjdk.org Thu Jun 29 13:58:25 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 29 Jun 2023 13:58:25 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v2] In-Reply-To: References: Message-ID: On Thu, 29 Jun 2023 11:02:31 GMT, Roman Kennke wrote: >> We have a bunch of ugly hacks in GC code paths where we do stuff like: >> if (UseCompactObjectHeaders) { >> // fetch object Klass* or size in a safe way... >> } else { >> // fetch object Klass* or size in the traditional way >> } >> >> This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. >> >> This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc (+UCOH) >> - [x] tier1 >> - [x] tier1 (+ShenandoahGC) >> - [x] tier1 (+ParallelGC) >> - [x] tier1 (+SerialGC) >> - [x] tier1 (+UCOH) >> - [x] tier1 (+UCOH +ShenandoahGC) >> - [x] tier1 (+UCOH +ParallelGC) >> - [x] tier1 (+UCOH +SerialGC) >> - [ ] tier2 >> - [ ] tier2 (+UCOH) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Remove unused method args I have questions :) src/hotspot/share/oops/oop.inline.hpp line 97: > 95: markWord oopDesc::prototype_mark() const { > 96: if (UseCompactObjectHeaders) { > 97: return klass()->prototype_header(); This is called from `MarkSweep::mark_object`. Shouldn't it then use `forward_safe_klass`? src/hotspot/share/oops/oop.inline.hpp line 303: > 301: set_mark(forward_safe_klass()->prototype_header()); > 302: } else { > 303: set_mark(markWord::prototype()); This thing is used from `PreservedMarks::init_forwarded_mark`, which in current 17u upstream calls `oopDesc::init_mark`, which then calls: ` set_mark(markWord::prototype_for_klass(klass()));`. So, does this miss the +BiasedLocking mark prototype? ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/50#pullrequestreview-1505343296 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246657851 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246650743 From rkennke at openjdk.org Thu Jun 29 14:18:24 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 29 Jun 2023 14:18:24 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v2] In-Reply-To: References: Message-ID: On Thu, 29 Jun 2023 13:55:30 GMT, Aleksey Shipilev wrote: >> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: >> >> Remove unused method args > > src/hotspot/share/oops/oop.inline.hpp line 97: > >> 95: markWord oopDesc::prototype_mark() const { >> 96: if (UseCompactObjectHeaders) { >> 97: return klass()->prototype_header(); > > This is called from `MarkSweep::mark_object`. Shouldn't it then use `forward_safe_klass`? I don't think that any objects would be forwarded during serial mark-sweep marking phase. > src/hotspot/share/oops/oop.inline.hpp line 303: > >> 301: set_mark(forward_safe_klass()->prototype_header()); >> 302: } else { >> 303: set_mark(markWord::prototype()); > > This thing is used from `PreservedMarks::init_forwarded_mark`, which in current 17u upstream calls `oopDesc::init_mark`, which then calls: ` set_mark(markWord::prototype_for_klass(klass()));`. > > So, does this miss the +BiasedLocking mark prototype? Right. In-fact, this means we can just fix init_mark() and use that. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246682656 PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246682176 From rkennke at openjdk.org Thu Jun 29 14:18:24 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 29 Jun 2023 14:18:24 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v2] In-Reply-To: References: Message-ID: <96FZHDyZuAWkyTFCe_f4t1n2IEFPU7knS4DLhw0MGgo=.7470f182-6ee1-4f37-a533-d5f53f378cca@github.com> On Thu, 29 Jun 2023 14:13:51 GMT, Roman Kennke wrote: >> src/hotspot/share/oops/oop.inline.hpp line 303: >> >>> 301: set_mark(forward_safe_klass()->prototype_header()); >>> 302: } else { >>> 303: set_mark(markWord::prototype()); >> >> This thing is used from `PreservedMarks::init_forwarded_mark`, which in current 17u upstream calls `oopDesc::init_mark`, which then calls: ` set_mark(markWord::prototype_for_klass(klass()));`. >> >> So, does this miss the +BiasedLocking mark prototype? > > Right. In-fact, this means we can just fix init_mark() and use that. Actually, no. We need to resolve the forwardee. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246684614 From shade at openjdk.org Thu Jun 29 14:25:26 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 29 Jun 2023 14:25:26 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v2] In-Reply-To: References: Message-ID: On Thu, 29 Jun 2023 14:14:14 GMT, Roman Kennke wrote: >> src/hotspot/share/oops/oop.inline.hpp line 97: >> >>> 95: markWord oopDesc::prototype_mark() const { >>> 96: if (UseCompactObjectHeaders) { >>> 97: return klass()->prototype_header(); >> >> This is called from `MarkSweep::mark_object`. Shouldn't it then use `forward_safe_klass`? > > I don't think that any objects would be forwarded during serial mark-sweep marking phase. Right, okay. ------------- PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/50#discussion_r1246690289 From rkennke at openjdk.org Thu Jun 29 14:25:26 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 29 Jun 2023 14:25:26 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v3] In-Reply-To: References: Message-ID: <9w_SNpF5ImrWPSfr2ADxWxd2fS2IEOmeYeS-TXFp65U=.adc4d9f5-0802-4aa8-9186-16810b5d7036@github.com> > We have a bunch of ugly hacks in GC code paths where we do stuff like: > if (UseCompactObjectHeaders) { > // fetch object Klass* or size in a safe way... > } else { > // fetch object Klass* or size in the traditional way > } > > This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. > > This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc (+UCOH) > - [x] tier1 > - [x] tier1 (+ShenandoahGC) > - [x] tier1 (+ParallelGC) > - [x] tier1 (+SerialGC) > - [x] tier1 (+UCOH) > - [x] tier1 (+UCOH +ShenandoahGC) > - [x] tier1 (+UCOH +ParallelGC) > - [x] tier1 (+UCOH +SerialGC) > - [ ] tier2 > - [ ] tier2 (+UCOH) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Fix oopDesc::init_mark() and use it where appropriate ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/50/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/50/files/f1783391..6cfa8a95 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=50&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=50&range=01-02 Stats: 10 lines in 2 files changed: 0 ins; 7 del; 3 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/50.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/50/head:pull/50 PR: https://git.openjdk.org/lilliput-jdk17u/pull/50 From shade at openjdk.org Thu Jun 29 15:07:23 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 29 Jun 2023 15:07:23 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code [v3] In-Reply-To: <9w_SNpF5ImrWPSfr2ADxWxd2fS2IEOmeYeS-TXFp65U=.adc4d9f5-0802-4aa8-9186-16810b5d7036@github.com> References: <9w_SNpF5ImrWPSfr2ADxWxd2fS2IEOmeYeS-TXFp65U=.adc4d9f5-0802-4aa8-9186-16810b5d7036@github.com> Message-ID: <8sQ0twizXY9LZxcQxz0DMzHy9fuVdyzef7wY2EqifYc=.b22d18ac-d7f2-4bee-a669-49073e8972f5@github.com> On Thu, 29 Jun 2023 14:25:26 GMT, Roman Kennke wrote: >> We have a bunch of ugly hacks in GC code paths where we do stuff like: >> if (UseCompactObjectHeaders) { >> // fetch object Klass* or size in a safe way... >> } else { >> // fetch object Klass* or size in the traditional way >> } >> >> This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. >> >> This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. >> >> Testing: >> - [x] hotspot_gc >> - [x] hotspot_gc (+UCOH) >> - [x] tier1 >> - [x] tier1 (+ShenandoahGC) >> - [x] tier1 (+ParallelGC) >> - [x] tier1 (+SerialGC) >> - [x] tier1 (+UCOH) >> - [x] tier1 (+UCOH +ShenandoahGC) >> - [x] tier1 (+UCOH +ParallelGC) >> - [x] tier1 (+UCOH +SerialGC) >> - [ ] tier2 >> - [ ] tier2 (+UCOH) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Fix oopDesc::init_mark() and use it where appropriate OK! ------------- Marked as reviewed by shade (Reviewer). PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/50#pullrequestreview-1505504533 From rkennke at openjdk.org Fri Jun 30 10:27:25 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 30 Jun 2023 10:27:25 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8310944: [Lilliput/JDK17] Streamline and cleanup GC code In-Reply-To: References: Message-ID: On Tue, 27 Jun 2023 11:31:43 GMT, Roman Kennke wrote: > We have a bunch of ugly hacks in GC code paths where we do stuff like: > if (UseCompactObjectHeaders) { > // fetch object Klass* or size in a safe way... > } else { > // fetch object Klass* or size in the traditional way > } > > This happens in various places in similar ways. I propose to add relevant methods to oopDesc, and make all GC code use those new methods instead. > > This helps streamline and clean up a bunch of GC code, and bring it closer to the JDK22 upstreaming PR. > > Testing: > - [x] hotspot_gc > - [x] hotspot_gc (+UCOH) > - [x] tier1 > - [x] tier1 (+ShenandoahGC) > - [x] tier1 (+ParallelGC) > - [x] tier1 (+SerialGC) > - [x] tier1 (+UCOH) > - [x] tier1 (+UCOH +ShenandoahGC) > - [x] tier1 (+UCOH +ParallelGC) > - [x] tier1 (+UCOH +SerialGC) > - [x] tier2 > - [x] tier2 (+UCOH) This pull request has now been integrated. Changeset: 723d034d Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/723d034d81518fe6e81eb3299f8706912de50c81 Stats: 301 lines in 16 files changed: 77 ins; 180 del; 44 mod 8310944: [Lilliput/JDK17] Streamline and cleanup GC code Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/50