-
Notifications
You must be signed in to change notification settings - Fork 37
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
Use distinct "end of cycle" message for each Shenandoah pause #270
Use distinct "end of cycle" message for each Shenandoah pause #270
Conversation
👋 Welcome back wkemper! A progress list of the required criteria for merging this PR into |
Webrevs
|
_gc->entry_final_updaterefs(); | ||
} | ||
|
||
void VM_ShenandoahFinalRoots::doit() { | ||
ShenandoahGCPauseMark mark(_gc_id, SvcGCMarker::CONCURRENT); |
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.
Why are we disabling the aging of regions? And why are we disabling the aging cycle?
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.
In my initial review, I missed that this functionality has been moved to ShenandoahConcurrentGC::entry_final_roots()
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.
I moved it into ShenandoahConcurrentGC::op_final_roots
to fit the pattern of other phases (VM_Operation_XYZ
and entry_XYZ
should just have GC tracking boiler plate). Also, with this approach, we don't have to marshal the is_aging_cycle
around.
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 for clarifying.
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.
As I think on this a bit more... we should probably also age regions during final update refs. The "final roots" phase only happens on abbreviated cycles.
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 for catching that. We need it in both places or some code path shared between the different cycles.
_gc->entry_final_updaterefs(); | ||
} | ||
|
||
void VM_ShenandoahFinalRoots::doit() { | ||
ShenandoahGCPauseMark mark(_gc_id, SvcGCMarker::CONCURRENT); |
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.
In my initial review, I missed that this functionality has been moved to ShenandoahConcurrentGC::entry_final_roots()
_gc->entry_final_updaterefs(); | ||
} | ||
|
||
void VM_ShenandoahFinalRoots::doit() { | ||
ShenandoahGCPauseMark mark(_gc_id, SvcGCMarker::CONCURRENT); |
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 for clarifying.
@earthling-amzn 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 208 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. ➡️ To integrate this PR with the above commit message to 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.
LGTM.
/integrate |
Going to push as commit 90a1c9b.
Your commit was automatically rebased without conflicts. |
@earthling-amzn Pushed as commit 90a1c9b. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This change allows the
GarbageCollectionNotificationInfo::gcAction
to be overridden. Shenandoah now uses this to distinguish the notification raised for each of the pauses during the concurrent cycle. This will make it easier for monitoring software to identify which phases may be having longer than expected pauses.Progress
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/shenandoah.git pull/270/head:pull/270
$ git checkout pull/270
Update a local copy of the PR:
$ git checkout pull/270
$ git pull https://git.openjdk.org/shenandoah.git pull/270/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 270
View PR using the GUI difftool:
$ git pr show -t 270
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/shenandoah/pull/270.diff
Webrev
Link to Webrev Comment