Re: RFR: 8345799: Update copyright year to 2024 for core-libs in files where it was missed [v3]
On Mon, 9 Dec 2024 15:42:57 GMT, Magnus Ihse Bursie wrote: >> Some files have been modified in 2024, but the copyright year has not been >> properly updated. This should be fixed. >> >> I have located these modified files using: >> >> git log --since="Jan 1" --name-only --pretty=format: | sort -u > file.list >> >> and then run a script to update the copyright year to 2024 on these files. >> >> I have made a manual sampling of files in the list to verify that they have >> indeed been modified in 2024. > > Magnus Ihse Bursie has updated the pull request incrementally with one > additional commit since the last revision: > > Revert changes to binary files Nice batch cleanup. - Marked as reviewed by mli (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/22640#pullrequestreview-2494928848
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v51]
On Thu, 24 Oct 2024 14:05:40 GMT, Roman Kennke wrote: >> This is the main body of the JEP 450: Compact Object Headers (Experimental). >> >> It is also a follow-up to #20640, which now also includes (and supersedes) >> #20603 and #20605, plus the Tiny Class-Pointers parts that have been >> previously missing. >> >> Main changes: >> - Introduction of the (experimental) flag UseCompactObjectHeaders. All >> changes in this PR are protected by this flag. The purpose of the flag is to >> provide a fallback, in case that users unexpectedly observe problems with >> the new implementation. The intention is that this flag will remain >> experimental and opt-in for at least one release, then make it on-by-default >> and diagnostic (?), and eventually deprecate and obsolete it. However, there >> are a few unknowns in that plan, specifically, we may want to further >> improve compact headers to 4 bytes, we are planning to enhance the Klass* >> encoding to support virtually unlimited number of Klasses, at which point we >> could also obsolete UseCompressedClassPointers. >> - The compressed Klass* can now be stored in the mark-word of objects. In >> order to be able to do this, we are add some changes to GC forwarding (see >> below) to protect the relevant (upper 22) bits of the mark-word. Significant >> parts of this PR deal with loading the compressed Klass* from the mark-word. >> This PR also changes some code paths (mostly in GCs) to be more careful when >> accessing Klass* (or mark-word or size) to be able to fetch it from the >> forwardee in case the object is forwarded. >> - Self-forwarding in GCs (which is used to deal with promotion failure) now >> uses a bit to indicate 'self-forwarding'. This is needed to preserve the >> crucial Klass* bits in the header. This also allows to get rid of >> preserved-header machinery in SerialGC and G1 (Parallel GC abuses >> preserved-marks to also find all other relevant oops). >> - Full GC forwarding now uses an encoding similar to compressed-oops. We >> have 40 bits for that, and can encode up to 8TB of heap. When exceeding 8TB, >> we turn off UseCompressedClassPointers (except in ZGC, which doesn't use the >> GC forwarding at all). >> - Instances can now have their base-offset (the offset where the field >> layouter starts to place fields) at offset 8 (instead of 12 or 16). >> - Arrays will now store their length at offset 8. >> - CDS can now write and read archives with the compressed header. However, >> it is not possible to read an archive that has been written with an opposite >> setting of UseCompactObjectHeaders. Some build machinery is added so that >> _co... > > Roman Kennke has updated the pull request incrementally with one additional > commit since the last revision: > > Conditionalize platform specific parts of > CompressedClassPointersEncodingScheme test test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointersEncodingScheme.java line 107: > 105: // the encoding range. We expect the encoding Base to start at > the class space start - but to enforce that, > 106: // we choose a high address. > 107: if (Platform.isAArch64() || Platform.isX64()) { @rkennke please also enable riscv for this test `CompressedClassPointersEncodingScheme.java`, it passed in my environment. Thanks! - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1815565554
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v43]
On Wed, 16 Oct 2024 13:42:42 GMT, Roman Kennke wrote: >> We're seeing failures in our nightly testing for tests >> runtime/cds/appcds/SharedBaseAddress.java and >> runtime/cds/SharedBaseAddress.java which I'm tracking in this bug >> [JDK-8340212](https://bugs.openjdk.org/browse/JDK-8340212) >> >> This patch should problem list these two tests on aarch64 when >> UseCompactObjectHeaders is on (if possible to be that specific), or just >> plain problem list it until I have a fix for it. > >> We're seeing failures in our nightly testing for tests >> runtime/cds/appcds/SharedBaseAddress.java and >> runtime/cds/SharedBaseAddress.java which I'm tracking in this bug >> [JDK-8340212](https://bugs.openjdk.org/browse/JDK-8340212) >> >> This patch should problem list these two tests on aarch64 when >> UseCompactObjectHeaders is on (if possible to be that specific), or just >> plain problem list it until I have a fix for it. > > Thanks for pointing this out. I've problem-listed both tests on aarch64. @rkennke Here is the [riscv implementation](https://github.com/rkennke/jdk/compare/JDK-8305895-v4...rivosinc:jdk-compact-2:compact-header-riscv?expand=1#diff-5808bc502bdf55f1ae7ba30504c8ee6eb92527f0c11670a35d6279d671b52c6bR271), could you help to include it in this pr? Thanks! - PR Comment: https://git.openjdk.org/jdk/pull/20677#issuecomment-2419103904
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v23]
On Thu, 19 Sep 2024 15:01:26 GMT, Hamlin Li wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Merge remote-tracking branch 'lilliput/JEP-450-temporary-fix-branch-2' >> into JDK-8305895-v4 >> - review feedback > > In both aarch64.ad and x86_64.ad, `MachUEPNode::format` might need some > change accordingly? > AFAIK, @Hamlin-Li is working on the RISCV port. Not sure who would do s390. > If it's available before intergration, I'll include it, but I'll not wait for > it. Thanks! We're having some internal (riscv specific) discussion & review, should be able to provide the patch soon. - PR Comment: https://git.openjdk.org/jdk/pull/20677#issuecomment-2413178574
Re: RFR: 8334305: Remove all code for nsk.share.Log verbose mode [v3]
On Tue, 1 Oct 2024 07:01:17 GMT, Ramkumar Sunderbabu wrote: >> Cleaning up nsk.share.Log code after the verbose mode was set always true. >> >> Tested all the vmTestbase/ tests. > > Ramkumar Sunderbabu has updated the pull request incrementally with one > additional commit since the last revision: > > Addressed review comments part2 Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/21267#pullrequestreview-2339332109
Re: RFR: 8341168: Cleanup dead code after JDK-8322630 [v2]
On Mon, 30 Sep 2024 08:15:51 GMT, Axel Boldt-Christmas wrote: >> [JDK-8322630](https://bugs.openjdk.org/browse/JDK-8322630) / #17495 removed >> the the concept of ICStubs, InlineCache buffers and related safepoints. >> >> There are a handfull of references and auxiliary constructs still in the >> code, I propose we clean these out. >> >> This removes the unused: >> * Experimental `InlineCacheBufferSize` option >> * `InlineCacheBuffer_lock` mutex >> * `Thread::_missed_ic_stub_refill_verifier` field >> * `VM_ICBufferFull` VM operation > > Axel Boldt-Christmas has updated the pull request incrementally with one > additional commit since the last revision: > > Add newline Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/21255#pullrequestreview-2336747914
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v23]
On Thu, 19 Sep 2024 12:08:46 GMT, Roman Kennke wrote: >> This is the main body of the JEP 450: Compact Object Headers (Experimental). >> >> It is also a follow-up to #20640, which now also includes (and supersedes) >> #20603 and #20605, plus the Tiny Class-Pointers parts that have been >> previously missing. >> >> Main changes: >> - Introduction of the (experimental) flag UseCompactObjectHeaders. All >> changes in this PR are protected by this flag. The purpose of the flag is to >> provide a fallback, in case that users unexpectedly observe problems with >> the new implementation. The intention is that this flag will remain >> experimental and opt-in for at least one release, then make it on-by-default >> and diagnostic (?), and eventually deprecate and obsolete it. However, there >> are a few unknowns in that plan, specifically, we may want to further >> improve compact headers to 4 bytes, we are planning to enhance the Klass* >> encoding to support virtually unlimited number of Klasses, at which point we >> could also obsolete UseCompressedClassPointers. >> - The compressed Klass* can now be stored in the mark-word of objects. In >> order to be able to do this, we are add some changes to GC forwarding (see >> below) to protect the relevant (upper 22) bits of the mark-word. Significant >> parts of this PR deal with loading the compressed Klass* from the mark-word. >> This PR also changes some code paths (mostly in GCs) to be more careful when >> accessing Klass* (or mark-word or size) to be able to fetch it from the >> forwardee in case the object is forwarded. >> - Self-forwarding in GCs (which is used to deal with promotion failure) now >> uses a bit to indicate 'self-forwarding'. This is needed to preserve the >> crucial Klass* bits in the header. This also allows to get rid of >> preserved-header machinery in SerialGC and G1 (Parallel GC abuses >> preserved-marks to also find all other relevant oops). >> - Full GC forwarding now uses an encoding similar to compressed-oops. We >> have 40 bits for that, and can encode up to 8TB of heap. When exceeding 8TB, >> we turn off UseCompressedClassPointers (except in ZGC, which doesn't use the >> GC forwarding at all). >> - Instances can now have their base-offset (the offset where the field >> layouter starts to place fields) at offset 8 (instead of 12 or 16). >> - Arrays will now store their length at offset 8. >> - CDS can now write and read archives with the compressed header. However, >> it is not possible to read an archive that has been written with an opposite >> setting of UseCompactObjectHeaders. Some build machinery is added so that >> _co... > > Roman Kennke has updated the pull request incrementally with two additional > commits since the last revision: > > - Merge remote-tracking branch 'lilliput/JEP-450-temporary-fix-branch-2' > into JDK-8305895-v4 > - review feedback In both aarch64.ad and x86_64.ad, `MachUEPNode::format` might need some change accordingly? - PR Comment: https://git.openjdk.org/jdk/pull/20677#issuecomment-2361266175
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v21]
On Wed, 18 Sep 2024 13:23:44 GMT, Roman Kennke wrote: >> This is the main body of the JEP 450: Compact Object Headers (Experimental). >> >> It is also a follow-up to #20640, which now also includes (and supersedes) >> #20603 and #20605, plus the Tiny Class-Pointers parts that have been >> previously missing. >> >> Main changes: >> - Introduction of the (experimental) flag UseCompactObjectHeaders. All >> changes in this PR are protected by this flag. The purpose of the flag is to >> provide a fallback, in case that users unexpectedly observe problems with >> the new implementation. The intention is that this flag will remain >> experimental and opt-in for at least one release, then make it on-by-default >> and diagnostic (?), and eventually deprecate and obsolete it. However, there >> are a few unknowns in that plan, specifically, we may want to further >> improve compact headers to 4 bytes, we are planning to enhance the Klass* >> encoding to support virtually unlimited number of Klasses, at which point we >> could also obsolete UseCompressedClassPointers. >> - The compressed Klass* can now be stored in the mark-word of objects. In >> order to be able to do this, we are add some changes to GC forwarding (see >> below) to protect the relevant (upper 22) bits of the mark-word. Significant >> parts of this PR deal with loading the compressed Klass* from the mark-word. >> This PR also changes some code paths (mostly in GCs) to be more careful when >> accessing Klass* (or mark-word or size) to be able to fetch it from the >> forwardee in case the object is forwarded. >> - Self-forwarding in GCs (which is used to deal with promotion failure) now >> uses a bit to indicate 'self-forwarding'. This is needed to preserve the >> crucial Klass* bits in the header. This also allows to get rid of >> preserved-header machinery in SerialGC and G1 (Parallel GC abuses >> preserved-marks to also find all other relevant oops). >> - Full GC forwarding now uses an encoding similar to compressed-oops. We >> have 40 bits for that, and can encode up to 8TB of heap. When exceeding 8TB, >> we turn off UseCompressedClassPointers (except in ZGC, which doesn't use the >> GC forwarding at all). >> - Instances can now have their base-offset (the offset where the field >> layouter starts to place fields) at offset 8 (instead of 12 or 16). >> - Arrays will now store their length at offset 8. >> - CDS can now write and read archives with the compressed header. However, >> it is not possible to read an archive that has been written with an opposite >> setting of UseCompactObjectHeaders. Some build machinery is added so that >> _co... > > Roman Kennke has updated the pull request incrementally with one additional > commit since the last revision: > > JVMCI support src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp line 2529: > 2527: } > 2528: __ decode_klass_not_null(result); > 2529: } else { Could this if/else block be replaced with a simple call of load_klass(...)? src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp line 3522: > 3520: { > 3521: __ movptr(result, Address(obj, oopDesc::klass_offset_in_bytes())); > 3522: } Could this if/else block be replaced with a simple call of load_klass(...)? - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1766587136 PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1766582255
Re: RFR: 8340213: jcmd VM.events ignores max argument [v2]
On Mon, 16 Sep 2024 19:54:38 GMT, Leonid Mesnik wrote: >> The inner 'int max;' declaration hide previous max. > > Leonid Mesnik has updated the pull request incrementally with two additional > commits since the last revision: > > - typo fixed. > - check added. Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/21024#pullrequestreview-2308619911
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v6]
On Mon, 9 Sep 2024 14:08:53 GMT, Roman Kennke wrote: >> Yes, I'm interested in it. Thanks for raising the discussion. :) > > If anybody is doing it, please send me a patch, or we can do it as a > follow-up PR. Thanks. I'll send it to you if I finish it in time, otherwise I will do it in a separate pr. - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1751544394
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v6]
On Tue, 27 Aug 2024 05:37:30 GMT, Fei Yang wrote: >> src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp line 170: >> >>> 168: mv(tmp1, (int32_t)(intptr_t)markWord::prototype().value()); >>> 169: sd(tmp1, Address(obj, oopDesc::mark_offset_in_bytes())); >>> 170: // Todo UseCompactObjectHeaders >> >> Can I ask, will this pr fullly support riscv? > > @Hamlin-Li : AFAIK, porting to linux-riscv platform has NOT been started yet. > To avoid duplicate work, please let me know if anyone is interested or has > been working on it :-) Yes, I'm interested in it. Thanks for raising the discussion. :) - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1732312058
Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v6]
On Thu, 22 Aug 2024 20:08:43 GMT, Roman Kennke wrote: >> This is the main body of the JEP 450: Compact Object Headers (Experimental). >> >> It is also a follow-up to #20640, which now also includes (and supersedes) >> #20603 and #20605, plus the Tiny Class-Pointers parts that have been >> previously missing. >> >> Main changes: >> - Introduction of the (experimental) flag UseCompactObjectHeaders. All >> changes in this PR are protected by this flag. The purpose of the flag is to >> provide a fallback, in case that users unexpectedly observe problems with >> the new implementation. The intention is that this flag will remain >> experimental and opt-in for at least one release, then make it on-by-default >> and diagnostic (?), and eventually deprecate and obsolete it. However, there >> are a few unknowns in that plan, specifically, we may want to further >> improve compact headers to 4 bytes, we are planning to enhance the Klass* >> encoding to support virtually unlimited number of Klasses, at which point we >> could also obsolete UseCompressedClassPointers. >> - The compressed Klass* can now be stored in the mark-word of objects. In >> order to be able to do this, we are add some changes to GC forwarding (see >> below) to protect the relevant (upper 22) bits of the mark-word. Significant >> parts of this PR deal with loading the compressed Klass* from the mark-word. >> This PR also changes some code paths (mostly in GCs) to be more careful when >> accessing Klass* (or mark-word or size) to be able to fetch it from the >> forwardee in case the object is forwarded. >> - Self-forwarding in GCs (which is used to deal with promotion failure) now >> uses a bit to indicate 'self-forwarding'. This is needed to preserve the >> crucial Klass* bits in the header. This also allows to get rid of >> preserved-header machinery in SerialGC and G1 (Parallel GC abuses >> preserved-marks to also find all other relevant oops). >> - Full GC forwarding now uses an encoding similar to compressed-oops. We >> have 40 bits for that, and can encode up to 8TB of heap. When exceeding 8TB, >> we turn off UseCompressedClassPointers (except in ZGC, which doesn't use the >> GC forwarding at all). >> - Instances can now have their base-offset (the offset where the field >> layouter starts to place fields) at offset 8 (instead of 12 or 16). >> - Arrays will now store their length at offset 8. >> - CDS can now write and read archives with the compressed header. However, >> it is not possible to read an archive that has been written with an opposite >> setting of UseCompactObjectHeaders. Some build machinery is added so that >> _co... > > Roman Kennke has updated the pull request incrementally with one additional > commit since the last revision: > > Fix bit counts in GCForwarding src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp line 170: > 168: mv(tmp1, (int32_t)(intptr_t)markWord::prototype().value()); > 169: sd(tmp1, Address(obj, oopDesc::mark_offset_in_bytes())); > 170: // Todo UseCompactObjectHeaders Can I ask, will this pr fullly support riscv? src/hotspot/share/oops/oop.inline.hpp line 94: > 92: > 93: void oopDesc::init_mark() { > 94: if (UseCompactObjectHeaders) { Seems only `set_mark(prototype_mark());` is fine for both cases? - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1729383247 PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1728833750
Re: RFR: 8318126: Refresh manpages
On Mon, 16 Oct 2023 01:18:52 GMT, David Holmes wrote: > The open nroff manpage files are out of sync with their closed markdown > sources and need to be refreshed. > > The changes to apply are coming from: > > - [JDK-8288158](https://bugs.openjdk.org/browse/JDK-8288158): Add an anchor > to each subcommand option on jfr html page > - [JDK-8273131](https://bugs.openjdk.org/browse/JDK-8273131): Update the java > manpage markdown source for JFR filename expansion > - [JDK-8221633](https://bugs.openjdk.org/browse/JDK-8221633): > StartFlightRecording: consider moving mention of multiple comma-separated > parameters to the front > - [JDK-8308662](https://bugs.openjdk.org/browse/JDK-8308662): Update the > "java" tool specification for CompileOnly > - [JDK-8317565](https://bugs.openjdk.org/browse/JDK-8317565): Update Manpage > for obsoletion of UseSHM > - [JDK-8310460](https://bugs.openjdk.org/browse/JDK-8310460): Remove jdeps > -profile option > > There are also some simple line break changes, likely due to using different > versions of the pandoc tool. > > Thanks Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/16196#pullrequestreview-1679368261
Re: RFR: 8312777: notifyJvmtiMount before notifyJvmtiUnmount
On Sat, 14 Oct 2023 18:07:45 GMT, Alan Bateman wrote: > JVMTI is notified after a virtual thread unmounts. Right not, this > notification is done after the virtual thread has finished parking or > yielding so it's possible for the virtual to continue, and be mounted on a > different carrier, before the unmount notification has completed on the > original carrier. If this happens it means the the JVMTI mount and unmount > notifications will race and it's possible they could be unbalanced. The > unmount notification needs to move to after the unmount and before the > virtual thread state is changed. > > While in the area, I've removed @ChangesCurrentThread from VirtualThread.run. > This annotation was in place to workaround an issue with the notifyJvmtiXXX > instrinsics, fixed recently by JDK-8316130. > > Testing: tier1-6. LGTM. - Marked as reviewed by mli (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/16194#pullrequestreview-1678813750
Re: RFR: 8311000: missing @since info in jdk.management
On Thu, 29 Jun 2023 11:48:43 GMT, Kevin Walls wrote: > Simple addition of a doc tag. > > src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java > is introduced in jdk7 by > 7036199: Adding a notification to the implementation of > GarbageCollectorMXBeans Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/14708#pullrequestreview-1506600934
Re: RFR: 8310988: Missing @since tags in java.management.rmi
On Thu, 29 Jun 2023 16:08:15 GMT, Kevin Walls wrote: > Simple doc tag addition. > > These are files which describe an interface that has been with us since 1.5. > The files themselves were previously generated at build time, but have been > in the repo since jdk15. But the API is since 1.5. > > The other file mentioned in the bug is not a public class and has no javadoc > generated, ignoring that one. Marked as reviewed by mli (Reviewer). - PR Review: https://git.openjdk.org/jdk/pull/14714#pullrequestreview-1506598416