8338534: Shenandoah: Handle alloc failure differently when immediate garbage is available - #32034
8338534: Shenandoah: Handle alloc failure differently when immediate garbage is available#32034earthling-amzn wants to merge 5 commits into
Conversation
|
👋 Welcome back wkemper! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@earthling-amzn 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: |
Webrevs
|
This change creates separate monitors for threads waiting because of an allocation failure and threads waiting for a complete gc cycle (this is as things are on
master). The respective monitors are acquired on different code paths (request_gc,handle_alloc_failure,handle_alloc_failure_full). Separating them like this avoids spurious wakeups from incomplete old marking increments (which neither free up memory nor complete a cycle). It also allows alloc failure waiters to be woken up midcycle after final mark reclaims immediate garbage without also waking up threads waiting for a complete cycle. Finally, this change consolidates several methods duplicated betweenShControlThreadandShGenerationalControlThreadinto theirShControllerbase class.Progress
Integration blocker
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/32034/head:pull/32034$ git checkout pull/32034Update a local copy of the PR:
$ git checkout pull/32034$ git pull https://git.openjdk.org/jdk.git pull/32034/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 32034View PR using the GUI difftool:
$ git pr show -t 32034Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/32034.diff
Using Webrev
Link to Webrev Comment