Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-10-15 Thread Thomas Schatzl
On Mon, 9 Sep 2024 11:53:13 GMT, Thomas Schatzl wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/klass.hpp line 169

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-10-08 Thread Roman Kennke
On Tue, 10 Sep 2024 09:28:41 GMT, Roman Kennke wrote: >> With compact headers, this value should only be used in C2, and not really >> as an actual offset. An earlier version of the change had the value in >> src/hotspot/share/opto/type.hpp instead, and only an assert(!UCOH) in >> oopDesc::kla

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-10-08 Thread Roman Kennke
On Mon, 9 Sep 2024 11:53:13 GMT, Thomas Schatzl wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/klass.hpp line 169

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Thomas Schatzl
On Fri, 13 Sep 2024 12:48:53 GMT, Stefan Karlsson wrote: >> If you've already fixed this for GC then I agree that we could remove this. > > This seems like something that should be done as a separate patch that gets > pushed before this PR. Will remove in JDK-8340119. - PR Review

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Stefan Karlsson
On Fri, 13 Sep 2024 12:47:09 GMT, Stefan Karlsson wrote: >> Which ones are remaining? JDK-8337709 implemented the same change for G1 GC >> before JDK-8311163. >> >> The full collectors/g1 marking do not modify the length fields but have >> multiple separate queues which is a different issue. I

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Stefan Karlsson
On Fri, 13 Sep 2024 11:10:58 GMT, Thomas Schatzl wrote: >> That bug doesn't fix all cases where the the length field is modified. > > Which ones are remaining? JDK-8337709 implemented the same change for G1 GC > before JDK-8311163. > > The full collectors/g1 marking do not modify the length fie

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Thomas Schatzl
On Fri, 13 Sep 2024 09:00:32 GMT, Stefan Karlsson wrote: >> src/hotspot/share/oops/oop.cpp line 230: >> >>> 228: // disjunct below to fail if the two comparands are computed across >>> such >>> 229: // a concurrent change. >>> 230: return Universe::heap()->is_stw_gc_active() && >>> klass

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Stefan Karlsson
On Mon, 9 Sep 2024 12:17:17 GMT, Thomas Schatzl wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/oop.cpp line 230:

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Thomas Stuefe
On Tue, 10 Sep 2024 12:13:58 GMT, Thomas Stuefe wrote: >> src/hotspot/share/oops/compressedKlass.cpp line 243: >> >>> 241: } else { >>> 242: >>> 243: // In legacy mode, we try, in order of preference: >> >> Can you not use the word 'legacy' here? Maybe in "non-compact object header >>

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-13 Thread Thomas Stuefe
On Tue, 10 Sep 2024 12:19:32 GMT, Coleen Phillimore wrote: >> This is tricky. We are already deep in initialization and have done a couple >> of decisions based on +UseCompressedClassPointers (e.g. CDS setup). I >> *think* we could still go with -UseCCP, but I wonder whether this is wise. >>

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-12 Thread Coleen Phillimore
On Thu, 12 Sep 2024 16:04:45 GMT, Thomas Stuefe wrote: >> src/hotspot/cpu/aarch64/compressedKlass_aarch64.cpp line 147: >> >>> 145: #endif >>> 146: >>> 147: return true; >> >> This should only be in the compressedKlass.cpp file. > > Okay. I will remove the whole `CompressedKlassPointers::pd_

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-12 Thread Thomas Stuefe
On Mon, 9 Sep 2024 15:58:29 GMT, Coleen Phillimore wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/cpu/aarch64/compressedKlas

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Thomas Stuefe
On Mon, 9 Sep 2024 17:40:03 GMT, Coleen Phillimore wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/compressedKlass

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Coleen Phillimore
On Tue, 10 Sep 2024 12:03:59 GMT, Thomas Stuefe wrote: >> src/hotspot/share/oops/compressedKlass.cpp line 214: >> >>> 212: ss.print("Class space size (%zu) exceeds the maximum possible size >>> (%zu)", >>> 213: len, max_encoding_range_size()); >>> 214: vm_exit_during_initi

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Thomas Stuefe
On Mon, 9 Sep 2024 15:50:50 GMT, Coleen Phillimore wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/compressedKlass

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Thomas Stuefe
On Mon, 9 Sep 2024 15:49:57 GMT, Coleen Phillimore wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/compressedKlass

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Stefan Karlsson
On Tue, 10 Sep 2024 08:41:16 GMT, Roman Kennke wrote: >> src/hotspot/share/oops/objArrayKlass.inline.hpp line 74: >> >>> 72: void ObjArrayKlass::oop_oop_iterate(oop obj, OopClosureType* closure) { >>> 73: // In this assert, we cannot safely access the Klass* with compact >>> headers. >>> 74:

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Roman Kennke
On Tue, 10 Sep 2024 08:37:43 GMT, Roman Kennke wrote: >>> could be any value that is not a valid field offset >> >> I understand that that "random value" needs to satisfy this condition. > > With compact headers, this value should only be used in C2, and not really as > an actual offset. An

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Roman Kennke
On Mon, 9 Sep 2024 12:12:23 GMT, Thomas Schatzl wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/objArrayKlass.inli

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Roman Kennke
On Mon, 9 Sep 2024 15:01:10 GMT, Thomas Schatzl wrote: >> Just to be clear, the second part of the quoted sentence is important: >>> could be any value *that is not a valid field offset* > >> could be any value that is not a valid field offset > > I understand that that "random value" needs

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-10 Thread Roman Kennke
On Mon, 9 Sep 2024 14:58:07 GMT, Stefan Karlsson wrote: >> src/hotspot/share/oops/oop.hpp line 134: >> >>> 132: inline Klass* forward_safe_klass(markWord m) const; >>> 133: inline size_t forward_safe_size(); >>> 134: inline void forward_safe_init_mark(); >> >> Given the comment th

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Coleen Phillimore
On Mon, 9 Sep 2024 11:55:52 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 >> previ

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Stefan Karlsson
On Mon, 9 Sep 2024 12:21:19 GMT, Thomas Schatzl wrote: >> Roman Kennke has updated the pull request incrementally with two additional >> commits since the last revision: >> >> - Try to avoid lea in loadNklass (aarch64) >> - Fix release build error > > src/hotspot/share/oops/oop.hpp line 134:

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Thomas Schatzl
On Mon, 9 Sep 2024 15:00:09 GMT, Stefan Karlsson wrote: > could be any value that is not a valid field offset I understand that that "random value" needs to satisfy this condition. - PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1750433800

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Thomas Schatzl
On Mon, 9 Sep 2024 11:55:52 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 >> previ

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Thomas Schatzl
On Mon, 9 Sep 2024 11:55:52 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 >> previ

Re: RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v8]

2024-09-09 Thread Roman Kennke
> 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 (