-
Notifications
You must be signed in to change notification settings - Fork 5.8k
8318776: Require supports_cx8 to always be true #16625
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
Conversation
👋 Welcome back dholmes! A progress list of the required criteria for merging this PR into |
@dholmes-ora The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
/label -build |
@magicus |
Fix copyright years.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great!
@dholmes-ora This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
Thanks for the review @fisk ! I have to wait for a few Zero related PRs to get integrated then re-merge, before I can integrate. |
Zero patches were pushed, please re-merge. I checked current mainline works well with at least linux-arm-zero-fastdebug, and I would like to re-test it with this patch. |
@shipilev I have re-merged and update the Zero changes (ifdef around @viktorklang-ora and/or @DougLea could I ask you to look at the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Zero tests are running. The PR looks great, except extra safety suggestion in x86 part:
Caught the |
The deletion of backup code and the check for it in java.util.concurrent.AtomicLongFieldUpdater are clearly OK. We always thought the need for it was transient. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow! This PR is much larger than I expected.
Thumbs up!
Thanks for looking at this @DougLea ! |
Thanks for the Review Dan! Yes lots of code deletion engineering in this one - and even better I got to delete template code with meta-programming stuff! :D |
@dholmes-ora Just passing by -- impressed by the thorough update! |
Thanks for taking a look @viktorklang-ora ! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ran full jcstress on linux-arm-zero-release on RPi 4 without problem.
@dholmes-ora this pull request can not be integrated into git checkout 8318776-supports_cx8
git fetch https://git.openjdk.org/jdk.git master
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge master"
git push |
Thanks for all the reviews. Integrating now. /integrate |
Going to push as commit c75c388.
Your commit was automatically rebased without conflicts. |
@dholmes-ora Pushed as commit c75c388. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
As discussed in JBS all platforms (some tweaks to Zero are in progress) actually do support
cx8
i.e. 64-bit compare-and-exchange, so we can strip out the locked-based alternatives to using it and just add a guarantee that it is true at runtime. And all platforms except some ARM variants setSUPPORTS_NATIVE_CX8
, so we can greatly simplify things. Summary of changes:_supports_cx8
field is only needed whenSUPPORTS_NATIVE_CX8
is not definedsupports_cx8()
are removedsupports_cx8()
are removedjava.util.concurrent.AtomicLongFieldUpdater
is simplified without the need for a lock-based alternativeI did consider moving all the ARM
kuser_helper
related code to be only defined whenSUPPORTS_NATIVE_CX8
is not defined, but there was a theoretical risk this could change the behaviour if ARMv7 binaries were run on other ARM CPU's. I added a note to that effect in vm_version_linux_arm32.cpp so the ARM port maintainers could clean this up further if desired.Testing:
Zero changes coming in via JDK-8319777 will be merged when they arrive.
Thanks.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16625/head:pull/16625
$ git checkout pull/16625
Update a local copy of the PR:
$ git checkout pull/16625
$ git pull https://git.openjdk.org/jdk.git pull/16625/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 16625
View PR using the GUI difftool:
$ git pr show -t 16625
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16625.diff
Webrev
Link to Webrev Comment