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

Make disable CAS and CAE options consistant #20721

Merged
merged 1 commit into from
Jan 14, 2025

Conversation

IBMJimmyk
Copy link
Contributor

Changes TR_DisableCASInlining envvar to disable inlining Unsafe compareAndSwap on all platforms. This used to only work on X and would also disable inlining compareAndExchange at the same time. Now it only disables inlining compareAndSwap.

Renames TR_DisableCAEIntrinsic envvar to TR_DisableCAEIntrinsic and it disables inlining Unsafe compareAndExchange on all platforms.

Envvars are now checked in fewer locations and set an option bit instead. The following methods were added to support this: getSupportsInlineUnsafeCompareAndSet
setSupportsInlineUnsafeCompareAndSet
getSupportsInlineUnsafeCompareAndExchange
setSupportsInlineUnsafeCompareAndExchange

These methods are used to indicate support for inlining CAS/CAE and also to query for suppport.

@IBMJimmyk
Copy link
Contributor Author

Currently in the middle of testing. So far things look good and problems are not expected.

Changes TR_DisableCASInlining envvar to disable inlining Unsafe
compareAndSwap on all platforms. This used to only work on X and would
also disable inlining compareAndExchange at the same time. Now it only
disables inlining compareAndSwap.

Renames TR_DisableCAEIntrinsic envvar to TR_DisableCAEIntrinsic and it
disables inlining Unsafe compareAndExchange on all platforms.

Envvars are now checked in fewer locations and set an option bit
instead. The following methods were added to support this:
getSupportsInlineUnsafeCompareAndSet
setSupportsInlineUnsafeCompareAndSet
getSupportsInlineUnsafeCompareAndExchange
setSupportsInlineUnsafeCompareAndExchange

These methods are used to indicate support for inlining CAS/CAE and
also to query for suppport.

Signed-off-by: jimmyk <[email protected]>
@IBMJimmyk IBMJimmyk changed the title WIP: Make disable CAS and CAE options consistant Make disable CAS and CAE options consistant Dec 23, 2024
@IBMJimmyk
Copy link
Contributor Author

Everything should be good now. Unfortunately, this changes a little bit on every platform so I'll need a review from a few different people.

@hzongaro Can you look over the Common and X changes?
@zl-wang Can you look over the Power changes?
@r30shah Can you look over the Z changes?
@knn-k Can you look over the Arm changes?

No rush on this change since it is mostly code clean up so getting a review after the holidays is okay.

Copy link
Contributor

@knn-k knn-k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AArch64 changes look good to me.

Copy link
Member

@hzongaro hzongaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the x86 and common changes look good. Thanks!

Copy link
Contributor

@r30shah r30shah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@zl-wang zl-wang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zl-wang
Copy link
Contributor

zl-wang commented Jan 13, 2025

Jenkins test sanity all jdk23

@zl-wang
Copy link
Contributor

zl-wang commented Jan 14, 2025

Windows test looks like an infra problem ... always pending. Merge ...

@zl-wang zl-wang merged commit 30f423a into eclipse-openj9:master Jan 14, 2025
23 of 25 checks passed
@IBMJimmyk IBMJimmyk deleted the CAE-option branch January 15, 2025 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants