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
8271951: Consolidate preserved marks overflow stack in SerialGC #5022
Conversation
|
Webrevs
|
Lgtm.
Pre-existing, and just a side note and not directly aimed at you: when looking at the change, there is the PreservedMark
class in Serial GC, and PreservedMarks
with its OopAndMarkWord
inner class and PreservedMarksSet
in shared/preservedMarks.hpp
which is not perfect naming. I'll probably file an RFE to look into this.
@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 133 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.
|
We might even think about using PreservedMarksSet in Serial GC, if we can allocate it in free parts of the heap. Not sure how feasible that would be though... |
Agree. Filed JDK-8272147. |
@@ -199,6 +198,8 @@ class PreservedMark { | |||
markWord _mark; | |||
|
|||
public: | |||
PreservedMark(oop obj, markWord mark) : _obj(obj), _mark(mark) {} | |||
|
|||
void init(oop obj, markWord mark) { |
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.
Do we even need this init
function anymore? Even if such an assignment is still needed, it could just use assignment from a newly constructed object, e.g. pm = PreservedMark(obj, mark);
. The only place I found where it is used is preserve_marks, which can use the assignment form instead.
/integrate |
Going to push as commit b40e8f0.
Your commit was automatically rebased without conflicts. |
In SerialGC we put preserved marks in space that we may have in the young gen, and failing that, we push it to an overflow stack. The overflow stack is actually two stacks, and replicate behavior of the in-place preserved marks. These can be consolidated.
Testing:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5022/head:pull/5022
$ git checkout pull/5022
Update a local copy of the PR:
$ git checkout pull/5022
$ git pull https://git.openjdk.java.net/jdk pull/5022/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 5022
View PR using the GUI difftool:
$ git pr show -t 5022
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5022.diff