-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8364081: Shenandoah & GenShen logging improvement #26469
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
base: master
Are you sure you want to change the base?
Conversation
👋 Welcome back rgithubli! A progress list of the required criteria for merging this PR into |
@rgithubli 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 10 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. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@earthling-amzn) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
@rgithubli The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
@rgithubli Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration. See OpenJDK Developers’ Guide for more information. |
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. Thanks for fixing this.
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 am wondering if we could just hoist the incrementing of the collections count to run_gc_cycle()
which would normally take care of everything at once in one place, with the option true
for stw and full cases.
It would probably miss the upgrade to full at a degen. We could either overcount by incrementing at the point of upgrade to full or gloss over it. I'd do the former (which is what I believe your degen upgrade to full does here).
(The other, perhaps arguably (or subjectively) better semantics, for full in the case of concurrent collectors is to conflate degens with full, treating both as a kind of failure of concurrent mode.
The problem is that the "total collections & full collections" terminology is inadequate when we have concurrent gcs, both young & old, global (explicit system.gc() invoking a concurrent gobal), and concurrent mode failures (degens) of each kind of collection. So I am guessing at some point we'll need to expand this semantics smoothly to accommodate these other kinds of collection.
However, this can be done later as an RFE that smoothly integrates what JFR et al. do as well.)
num_regions(), | ||
byte_size_in_proper_unit(ShenandoahHeapRegion::region_size_bytes()), | ||
proper_unit_for_byte_size(ShenandoahHeapRegion::region_size_bytes())); | ||
bool is_generational = mode()->is_generational(); |
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.
const
st->print_cr(" %zu x " PROPERFMT " regions", | ||
num_regions(), | ||
PROPERFMTARGS(ShenandoahHeapRegion::region_size_bytes())); |
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'd print this info for GenShen above as well.
Fix missing
increment_total_collections
usages in Shenandoah (otherwise, the invocation count is always 0 as shown in #26272 overview).Also added some generational information for generational shenandoah logging.
Shenandoah logging samples:
Generational Shenandoah logging samples
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/26469/head:pull/26469
$ git checkout pull/26469
Update a local copy of the PR:
$ git checkout pull/26469
$ git pull https://git.openjdk.org/jdk.git pull/26469/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 26469
View PR using the GUI difftool:
$ git pr show -t 26469
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/26469.diff
Using Webrev
Link to Webrev Comment