JDK-8305895 : Implement JEP 450: Compact Object Headers (Experimental)
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 21
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2023-04-12
  • Updated: 2024-11-11
  • Resolved: 2024-11-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 24
24 masterFixed
Related Reports
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
Blocks :  
CSR :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8314439 :  
JDK-8314440 :  
JDK-8339415 :  
Description
Tracks integration into mainline JDK
Comments
Changeset: 44ec501a Branch: master Author: Roman Kennke <rkennke@openjdk.org> Date: 2024-11-08 17:21:39 +0000 URL: https://git.openjdk.org/jdk/commit/44ec501a41f4794259dd03cd168838e79334890e
08-11-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/20677 Date: 2024-08-22 13:35:08 +0000
22-08-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/20640 Date: 2024-08-20 10:07:26 +0000
22-08-2024

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/17872 Date: 2024-02-15 13:23:35 +0000
15-02-2024

[~rkennke] I just converted this to an issue rather than a JEP subtask, because I'm about to add performance and functionality testing subtasks to this.
16-08-2023

I ran testing for tier1-7 last night. Testing was better but there are still interactions with Generational ZGC. Hardcoding UseCompactObjectHeaders to true and run: 1. make test TEST=gc/stress/gcbasher/TestGCBasherWithZ.java TEST_VM_OPTS="-XX:+UseZGC -XX:+ZGenerational" # JRE version: Java(TM) SE Runtime Environment (21.0) (fastdebug build 21-internal-LTS-2023-05-18-2217242.cphillim...) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-internal-LTS-2023-05-18-2217242.cphillim..., mixed mode, sharing, tiered, compressed class ptrs, z gc, linux-amd64) # Problematic frame: # V [libjvm.so+0x19ef7ee] ZRelocateWork<ZRelocateSmallAllocator>::do_forwarding(ZForwarding*)+0x17fe There are XRelocateWork versions of this (the non-generational ZGC) if you take off -XX:+ZGenerational. 2. gc/logging/TestUnifiedLoggingSwitchStress.java with ParallelGC still fails in KlassInfoTable::record_instance. I can't reproduce this on my linux-x64 machine locally. Attached hs_err_pid3807180.log. 3. runtime/Thread/SetNameAtExit.java with -XX:+UseZCG -XX:+ZGenerational only on Windows. I attached hs_err_pid23976.log for this.
19-05-2023

[~coleenp] Thanks Coleen for testing this! I pushed fixes for the Serial GC and ZGC problems. I could not reproduce the other failures so far. If you test this again and are still hitting those asserts, I'd be interested in the hs_err files. Thank you!
18-05-2023

From 5/15 test run tier1-8, mostly on linux-x64-debug. vmTestbase/nsk/sysdict/vm/stress/btree/btree010/btree010.java vmTestbase/nsk/sysdict/vm/stress/chain/chain007/chain007.java vmTestbase/nsk/sysdict/vm/stress/chain/chain008/chain008.java vmTestbase/nsk/sysdict/vm/stress/btree/btree012/btree012.java (there were several other tests with this failure, this is a sample) Tests failed with assert with -XX:+SerialGC: # Internal Error (open/src/hotspot/share/gc/shared/slidingForwarding.inline.hpp:68), pid=2388337, tid=2388342 # assert(UseG1GC) failed: Only happens with G1 serial compaction # tools/launcher/LauncherMessageTest.java This test failed with ParallelGC: # Internal Error (open/src/hotspot/share/oops/markWord.inline.hpp:43), pid=2206433, tid=2207534 # assert(!CompressedKlassPointers::is_null(narrow_klass())) failed: narrow klass must not be null: 0x00000000f60d1093 gtestGTestWrapper.java running PreservedMarks_iterate_and_restore_vm_Test::TestBody()+0x577 (test_preservedMarks.cpp:86) # Java VM: Java HotSpot(TM) 64-Bit Server VM (21-internal-LTS-2023-05-15-2224454.coleen.phillimore.jdk-lilliput, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) # Problematic frame: # V [libjvm.so+0x107d4d9] PreservedMarks::adjust_during_full_gc()+0xd9 vm/verifier/protectedCheck/protectedCheck001/protectedCheck00101m310/protectedCheck00101m310.html A few JCK tests fail with -XX:+UseZGC -XX:+ZGenerational # Internal Error (open/src/hotspot/share/oops/markWord.inline.hpp:43), pid=2147263, tid=2147267 # assert(!CompressedKlassPointers::is_null(narrow_klass())) failed: narrow klass must not be null: 0x0000000000000001 gc/logging/TestUnifiedLoggingSwitchStress.java # Internal Error (open/src/hotspot/share/oops/markWord.inline.hpp:43), pid=1494186, tid=1494329 # assert(!CompressedKlassPointers::is_null(narrow_klass())) failed: narrow klass must not be null: 0x00000000fc90a983 # # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-internal-LTS-2023-05-15-2225577.coleen.phillimore.jdk-lilliput, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64) # Problematic frame: # V [libjvm.so+0xdc0dcb] KlassInfoTable::record_instance(oop)+0x5bb # Let me know if you need more information and stack traces, or cannot reproduce these failures. I think I captured all the categories of failures.
17-05-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/13961 Date: 2023-05-12 17:27:25 +0000
12-05-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/13844 Date: 2023-05-05 20:29:38 +0000
08-05-2023