Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to toggle Extended HCR capability #1352

Closed
tajila opened this issue Jun 11, 2024 · 18 comments · Fixed by #1360, #1362 or #1380
Closed

Add option to toggle Extended HCR capability #1352

tajila opened this issue Jun 11, 2024 · 18 comments · Fixed by #1360, #1362 or #1380
Assignees

Comments

@tajila
Copy link
Contributor

tajila commented Jun 11, 2024

Issue or pull request number:
eclipse-openj9/openj9#19554

Overview:
A new option -XX:[+|-]EnableExtendedHCR is added. This option toggles the extended HCR capability in the JVM.

Note: by default this capability is disabled (for Semeru but not IBM Java 8) which is a change in behaviour from previous releases. If there is a JVMTI failure as a result of this change, the user will see the following warning message Warning: Extended HCR is disabled, enable with -XX:+EnableExtendedHCR..

Also, as part of this change we will be announcing the deprecation of the extendedHCR feature for removal in the near future. As of JDK25 extended HCR will no longer be supported. Following that, we will also remove extended HCR support from legacy releases (ie. JDK8).

Release target:
Eclipse OpenJ9 0.46.0*

Applies to the following JDK versions:
8 and later

Applies to the following platforms:
All platforms

For new command line options:

  • Option name and syntax: -XX:[+|-]EnableExtendedHCR
  • Purpose: This option toggles the extended HCR capability in the JVM.
  • Restrictions: None
@tajila
Copy link
Contributor Author

tajila commented Jun 11, 2024

@pshipton @mstoodle any concerns with the deprecation statement?

@tajila
Copy link
Contributor Author

tajila commented Jun 11, 2024

For background:

Short-term requirement: We need to disable extendedHCR to support unsafe static field access at fixed offsets optimization. The dynamic checks are not ideal, but it is what we have to do now.

Long-term requirement: There is a maintenance cost is supporting extended HCR and we are not sure anyone is actually using it. The ideal scenario is to just remove the feature entirely.

@pshipton
Copy link
Member

Seems fine.

@pshipton
Copy link
Member

How does this apply to IBM Java 8, considering it's not disabled by default there atm?

@tajila
Copy link
Contributor Author

tajila commented Jun 12, 2024

How does this apply to IBM Java 8, considering it's not disabled by default there atm?

I assumed we didn't document IBM java8 in openj9 docs

@mstoodle
Copy link
Contributor

I'm fine with the approach so long as there is a way for us to discover that lots of people do depend on it.

We should possibly add this option to any migration documentation we have between IBM SDK for Java and Semeru Runtimes (but that's something for IBM to decide and shouldn't block openj9 moving forward with this approach).

@pshipton
Copy link
Member

I assumed we didn't document IBM java8 in openj9 docs

We don't but the IBM Java 8 doc is derived from OpenJ9, we will be asked. Also I'm curious how your plan to "remove extended HCR support from legacy releases" affects IBM Java 8. Is it exempt?

@tajila
Copy link
Contributor Author

tajila commented Jun 12, 2024

Also I'm curious how your plan to "remove extended HCR support from legacy releases" affects IBM Java 8. Is it exempt?

This round we will disable it in Semeru/Openj9 by default. Next release, I'd like to disable it in IBM Java8 assuming no one complains. Afterwards, I'd like to remove it completely.

@tajila
Copy link
Contributor Author

tajila commented Jun 12, 2024

Also I'm curious how your plan to "remove extended HCR support from legacy releases" affects IBM Java 8. Is it exempt?

This round we will disable it in Semeru/Openj9 by default. Next release, I'd like to disable it in IBM Java8 assuming no one complains. Afterwards, I'd like to remove it completely.

Now that I think about it, I think we need a stronger deprecation message. Something like: Warning: Extended HCR is disabled, enable with -XX:+EnableExtendedHCR. In the future, this capability will be removed from the JDK.

@pshipton
Copy link
Member

We should add something to this migration guide.
https://www.ibm.com/support/pages/semeru-runtimes-migration-guide

@tajila
Copy link
Contributor Author

tajila commented Jun 12, 2024

We should add something to this migration guide.
https://www.ibm.com/support/pages/semeru-runtimes-migration-guide

Is this also done by the docs team?

@pshipton
Copy link
Member

I'll let @Sreekala-Gopakumar answer that.

@Sreekala-Gopakumar
Copy link
Contributor

Yes, we can change the migration guide.

@Sreekala-Gopakumar Sreekala-Gopakumar self-assigned this Jun 26, 2024
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jun 26, 2024
eclipse-openj9#1352

New option -XX:[+|-]EnableExtendedHCR added.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar <[email protected]>
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jun 26, 2024
eclipse-openj9#1352

New option -XX:[+|-]EnableExtendedHCR added.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar <[email protected]>
@pshipton pshipton reopened this Jun 28, 2024
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jun 28, 2024
eclipse-openj9#1352

New option -XX:[+|-]EnableExtendedHCR added to the TOC.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar <[email protected]>
@Sreekala-Gopakumar
Copy link
Contributor

We should add something to this migration guide. https://www.ibm.com/support/pages/semeru-runtimes-migration-guide

@pshipton - I have updated the migration guide. Please check and confirm that the content is ok. Thanks!

https://supportcontent.ibm.com/support/pages/node/6366719/latest

@pshipton
Copy link
Member

pshipton commented Jul 22, 2024

Looking at this again, we should expand the one line description. It says "New -XX:[+|-]EnableExtendedHCR option added" but doesn't mention the change in behavior.

@pshipton pshipton reopened this Jul 22, 2024
@pshipton
Copy link
Member

I suggest the migration item should mention the change in behavior occurs in the OpenJ9 0.46 release, or the following OpenJDK versions: jdk8u422, 11.0.24, 17.0.12, 21.0.4, 22.0.2, 23.0

Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jul 22, 2024
eclipse-openj9#1352

Updated the What's new in version 0.46.0 to emphasise the change in behavior

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar [email protected]
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jul 22, 2024
eclipse-openj9#1352

Updated the What's new in version 0.46.0 to emphasise the change in behavior

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar [email protected]
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jul 23, 2024
eclipse-openj9#1352

Updated the What's new in version 0.46.0 to emphasise the change in behavior. Link updated.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar [email protected]
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jul 23, 2024
eclipse-openj9#1352

Updated the What's new in version 0.46.0 to emphasise the change in behavior. Link updated.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar [email protected]
Sreekala-Gopakumar added a commit to Sreekala-Gopakumar/openj9-docs that referenced this issue Jul 23, 2024
eclipse-openj9#1352

Updated the What's new in version 0.46.0 to emphasise the change in behavior. Link updated.

Closes eclipse-openj9#1352
Signed-off-by: Sreekala Gopakumar [email protected]
@Sreekala-Gopakumar
Copy link
Contributor

I suggest the migration item should mention the change in behavior occurs in the OpenJ9 0.46 release, or the following OpenJDK versions: jdk8u422, 11.0.24, 17.0.12, 21.0.4, 22.0.2, 23.0

@pshipton - I have updated the document. Please check if the change is OK. Thanks!

https://supportcontent.ibm.com/support/pages/node/6366719/latest

@pshipton
Copy link
Member

Looks good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment