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

AArch64: Stop generating a dmb for allocationFence when possible #16199

Merged
merged 1 commit into from
Nov 14, 2022

Conversation

knn-k
Copy link
Contributor

@knn-k knn-k commented Oct 26, 2022

This PR stops generating a dmb instruction for allocationFence on AArch64 if the node is followed by monexit, for reducing memory synchronization.

Signed-off-by: KONNO Kazuhiro konno@jp.ibm.com

This PR stops generating a dmb instruction for allocationFence on
AArch64 if the node is followed by monexit, for reducing memory
synchronization.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
@knn-k
Copy link
Contributor Author

knn-k commented Oct 26, 2022

This PR depends on #16119.

@knn-k
Copy link
Contributor Author

knn-k commented Oct 26, 2022

Based on the changes for p in #16119.

By default the monexitEvaluator for AArch64 uses the STLR (Store-Release Register) instruction, which forces the memory ordering.
https://developer.arm.com/documentation/dui0801/k/A64-Data-Transfer-Instructions/STLR?lang=en

The evaluator uses the DMB instruction instead of STLR when TR_aarch64UseMemoryBarrierForMonitorExit is defined. I don't think I need to optimize that path because it is used for debugging purpose only.

AArch64 JIT does not support LockReservation, and this PR does not have the change for LockReservation.

@knn-k
Copy link
Contributor Author

knn-k commented Oct 30, 2022

Jenkins test sanity alinux64 jdk11,jdk17

@knn-k knn-k marked this pull request as ready for review October 31, 2022 02:26
@knn-k knn-k requested a review from 0xdaryl October 31, 2022 02:26
@0xdaryl 0xdaryl self-assigned this Nov 14, 2022
@0xdaryl 0xdaryl merged commit 167a660 into eclipse-openj9:master Nov 14, 2022
@knn-k knn-k deleted the aarch64_allocfence branch November 14, 2022 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants