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
8256011: Shenandoah: Don't resurrect finalizably reachable objects #1109
Conversation
|
Webrevs
|
…n on phantom access
@rkennke This change now passes all automated pre-integration checks. 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 22 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
|
src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
Outdated
Show resolved
Hide resolved
src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
Outdated
Show resolved
Hide resolved
src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp
Outdated
Show resolved
Hide resolved
src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp
Outdated
Show resolved
Hide resolved
This looks fine to me. Let Zhengyu look through this thoroughly.
src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
Outdated
Show resolved
Hide resolved
src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp
Outdated
Show resolved
Hide resolved
This looks fine to me. Good to go, assuming the tests pass.
/integrate |
@rkennke Since your change was applied there have been 25 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit b0c28fa. |
In the weak-LRB we currently return referents when it is 'marked', that is when it's either reachable strongly or through a finalizable object. This means a finalizable object can be resurrected by Reference.get(), which is wrong. Only truly strongly reachable objects should be returned by Reference.get() during weak-reference-processing.
I had to reconsider the way we call into runtime-LRBs from generated code for these reasons:
Note that this depends on PR#1140.
Testing:
Progress
Testing
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/1109/head:pull/1109
$ git checkout pull/1109