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

Thomas Schatzl tschatzl at openjdk.org
Fri Sep 13 11:15:15 UTC 2024


On Fri, 13 Sep 2024 09:00:32 GMT, Stefan Karlsson <stefank at openjdk.org> 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->is_objArray_klass() && is_forwarded() && (UseParallelGC || UseG1GC);
>> 
>> Is this still true after the recent changes like JDK-8311163? It might be worth waiting for.
>
> 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 fields but have multiple separate queues which is a different issue. It will also be handled by the new `PartialArrayTaskStepper`, but should be of no concern here.

If I am not missing some case, this whole method is unnecessary now.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1758672296


More information about the serviceability-dev mailing list