8386889: [lworld] Redundant StoreStore membar after FlatValuePayload::read#2581
8386889: [lworld] Redundant StoreStore membar after FlatValuePayload::read#2581jsikstro wants to merge 2 commits into
Conversation
|
👋 Welcome back jsikstro! A progress list of the required criteria for merging this PR into |
|
@jsikstro 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 1 new commit pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
TheRealMDoerr
left a comment
There was a problem hiding this comment.
This makes sense. Thanks for taking care of all platforms! I prefer a small change for PPC64.
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
TheRealMDoerr
left a comment
There was a problem hiding this comment.
Thank you! I appreciate it! LGTM.
|
Thank you for the reviews @TheRealMDoerr, @xmas92, and @fparain! |
|
Going to push as commit b508893.
Your commit was automatically rebased without conflicts. |
Hello,
This is (yet another) cleanup to remove redundant memory barriers after the new ValuePayload abstraction API in the runtime. The ValuePayload API's (including FlatValuePayload::read) does the necessary calls to order stores of the copy before the oop is published (OrderAccess::storestore), making the platform-specific memory barriers redundant.
I don't have hardware access to RISCV or PPC, but looking at the runtime implementations of OrderAccess::storestore, they achieve the same thing as the platform-specific memory barriers that I suggest we remove in this PR.
GHA will show that this compiles at least.Edit: looks like linux-cross-compile is not enabled for the lworld branch yet.membar(Assembler::StoreStore | Assembler::LoadLoad);andOrderAccess::storestore()both boil down tolwsyncon PPC.The C1 call to
load_flat_arrayalready omits the memory barrier, so we don't need to remove it here.Testing:
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/2581/head:pull/2581$ git checkout pull/2581Update a local copy of the PR:
$ git checkout pull/2581$ git pull https://git.openjdk.org/valhalla.git pull/2581/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2581View PR using the GUI difftool:
$ git pr show -t 2581Using diff file
Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/2581.diff
Using Webrev
Link to Webrev Comment