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

2024-09-09 Thread Stefan Karlsson
On Mon, 9 Sep 2024 12:49:05 GMT, Roman Kennke wrote: >>> If we get a promotion failure in the young gen, we are leaving the dead >>> objects marked as forwarded. >> >> True; need to do sth like `obj->init_mark();` for the non-self-forwarded >> case. The postcondition is that no forwarded objs

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

2024-09-09 Thread Roman Kennke
On Fri, 30 Aug 2024 18:10:44 GMT, Albert Mingkun Yang wrote: >> FWIW, the ParallelGC does something very similar to what you propose, except >> that it walks bitmaps instead of paring the space to find the self-forwarded >> objects. It then has a check inside object_iterate to make sure that it

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

2024-08-30 Thread Albert Mingkun Yang
On Fri, 30 Aug 2024 11:15:23 GMT, Stefan Karlsson wrote: >> I was thinking the same, but there's a problem with that. If we get a >> promotion failure in the young gen, we are leaving the dead objects marked >> as forwarded. Then when the Full GC scans these regions with dead objects it >> wil

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

2024-08-30 Thread Stefan Karlsson
On Thu, 22 Aug 2024 17:12:09 GMT, Albert Mingkun Yang wrote: >> Roman Kennke has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Remove hashcode leftovers from SA > > src/hotspot/share/gc/serial/defNewGeneration.cpp line 707: > >> 705:

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

2024-08-30 Thread Stefan Karlsson
On Fri, 30 Aug 2024 11:07:46 GMT, Stefan Karlsson wrote: >> src/hotspot/share/gc/serial/defNewGeneration.cpp line 707: >> >>> 705: } else if (obj->is_forwarded()) { >>> 706: // To restore the klass-bits in the header. >>> 707: obj->forward_safe_init_mark(); >> >> I wonder

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

2024-08-30 Thread Thomas Stuefe
On Fri, 30 Aug 2024 07:25:54 GMT, Stefan Karlsson wrote: >> src/hotspot/share/gc/serial/serialArguments.cpp line 33: >> >>> 31: void SerialArguments::initialize_heap_flags_and_sizes() { >>> 32: GenArguments::initialize_heap_flags_and_sizes(); >>> 33: GCForwarding::initialize_flags(MaxNewSize

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

2024-08-30 Thread Stefan Karlsson
On Thu, 22 Aug 2024 17:30:14 GMT, Albert Mingkun Yang wrote: >> Roman Kennke has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Remove hashcode leftovers from SA > > src/hotspot/share/gc/serial/serialArguments.cpp line 33: > >> 31: void Se

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

2024-08-22 Thread Albert Mingkun Yang
On Thu, 22 Aug 2024 16:23:48 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 >> prev

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

2024-08-22 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 (

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

2024-08-22 Thread Roman Kennke
On Thu, 22 Aug 2024 11:05:18 GMT, Roman Kennke wrote: >> This is the main body of the JEP 450: Compact Object Headers (Experimental). >> >> Main changes: >> - Introduction of the (experimental) flag UseCompactObjectHeaders. All >> changes in this PR are protected by this flag. The purpose of t

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

2024-08-22 Thread Roman Kennke
> This is the main body of the JEP 450: Compact Object Headers (Experimental). > > 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 unexp