JDK-8314439 : Test Plan for Implementation of JEP 450: Compact Object Headers
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: test
  • Affected Version: 24
  • Priority: P4
  • Status: Resolved
  • Resolution: Delivered
  • Submitted: 2023-08-16
  • Updated: 2024-10-28
  • Resolved: 2024-10-27
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
24Resolved
Related Reports
Relates :  
Relates :  
Description
The Implementation for Compact Object Headers requires testing with the experimental feature turned on.

Final testing should be done for PR https://github.com/openjdk/jdk/pull/20677 when it is approved and ready for final testing.  



***Test success criteria***
 - *There are shouldn't be any regression. (No new failures if UseCompactObjectHeaders is not enable*
 - *The bugs for UseCompactObjectHeaders enabled should be filed and triage. No P1/P2 is allowed.  This testing might uncover incompatible tests which should be marked/problemlisted.*

## 1  **Test Methodology**

Since the -XX:+UseCompactObjectHeaders affects a lot of functionality it makes sense to run CI with this feature enabled. 

1. Execution of whole JDK CI without enabling -XX:+UseCompactObjectHeaders. There are shouldn't be any regression.

2.Testing of JDK CI wiht  'XX:+UseCompactObjectHeaders' enabled.
Execution the vm flag  -XX:+UseCompactObjectHeaders is temporary set to 'true' and non experimental.  
The whole JDK CI should be executed in this mode and failure analyzed. The bugs should be filed and triage. No P1/P2 is allowed. 
This testing might uncover incompatible tests which should be marked/problemlisted.

3. The JCK should pass with -XX:+UseCompactObjectHeaders enabled. 
The any failures of product bits are treated as a tck-red and should be fixed before integration.


*Extends "Testing" section of the JEP. This section could go as deep as necessary explaining what kind of testing should be done for the JEP and why.*

## 2  **Test Inventory** *(optional)*


### **Existing Tests**
All tests used for JDK testing.

### **New Tests**
 No new tests except unit tests are planned.

### **Deprecated Tests**
None

## 3 **Test Configurations** *(optional)*

The PIT should be executed on all platforms like this testing is executed by CI. It includes execution of jtreg tests and some internal testing with different VM flags on linux-x64,lnux-aarch64,windows-x64,macosx-x64,macosx-aarch64 fastdebug/product binaries.
Comments
Thanks, [~lmesnik]! All reported failures have either been fixed or deferred to after integration.
28-10-2024

A couple of new failures were reported as PR comments by Stefan and couple more are linked to this issue. That's all. The PIT is fine and need only yo confirm long running test. Nothing preventing from integration.
24-10-2024

[~lmesnik] can you point me to where you reported the failures? Because I don't see them anywhere in the PR or elsewhere. Or does that mean there are no more failures? ;-)
24-10-2024

The PIT is mostly completed except long stress test. The new issues are linked or reported directly in PR. I'm going to close bug once last long test is completed (3 more days).
24-10-2024

[~rkennke] The PIT is started, it is going to take few days. I'll updated the bug with status.
18-10-2024

[~lmesnik] I've now re-enabled the indexOf intrinsic and think the PR is ready for PIT testing. I expect that any additional changes would be cosmetic and/or not performance-impacting. Thank you!
08-10-2024

I think we're almost ready. I would wait for this change to get into the PR: https://github.com/openjdk/jdk/pull/20677#discussion_r1787528501 I'm waiting for feedback from [~sviswa7] and/or [~sgibbons] on this. This change might affect performance, as it (re-) enables the String.indexOf() intrinsic with compact headers. I would expect that other remaining changes are mostly cosmetic or clearly not performance-sensitive.
07-10-2024

[~rkennke] Please be aware that once the PR is ready to integrate, can you let Leonid know because this Pre-Integration testing (PIT) testing will take a week to complete on our side before integration. It appears that you've merged with mainline today (10/4). Is this almost ready for PIT testing?
04-10-2024

[~rkennke] Thank you for information. We plan to execute some pre-integration testing for lilliput in our test system. The description has some high-level overview. This testing includes our stress testing and might take a long time. Could you please add comments with all issues which are planned be fixed and included in your PR. Also, could you please let me know when PR is ready for final testing so it could be run while PR is reviewed.
23-08-2024

Notice that the plan is to lift the heap size boundary for +UseCompactObjectHeaders to 8TB before the JEP450 implementation goes in. The current 8GB limit is only temporary until Thomas Stuefe publishes his Tiny Class-Pointers PR. Plan accordingly.
22-08-2024