8385643: Shenandoah: Rework mark loop inlining#31634
Conversation
|
👋 Welcome back shade! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@shipilev 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. |
|
The total number of required reviews for this PR has been set to 2 based on the presence of this label: |
|
With a stress test for marking, I have got about +23% (!) faster mark times. |
Webrevs
|
|
On SPECjbb preset-IR run, seeing +20...30% faster concurrent marks as well: |
While following up on concurrent marking performance, I noticed that we stopped / failed to inline some of the hot methods in marking loop. We need to rework this.
This PR replaces the build-time GCC-specific "bump" for inlining heuristics into explicit inlining hints across the hot path. I have eyeballed the profiles on typical workloads and the inlining makes sense now.
Additional testing:
hotspot_gc_shenandoahProgress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/31634/head:pull/31634$ git checkout pull/31634Update a local copy of the PR:
$ git checkout pull/31634$ git pull https://git.openjdk.org/jdk.git pull/31634/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 31634View PR using the GUI difftool:
$ git pr show -t 31634Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/31634.diff
Using Webrev
Link to Webrev Comment