Integrated: Fix Region Promotion
William Kemper
wkemper at openjdk.java.net
Thu May 6 15:41:17 UTC 2021
On Wed, 5 May 2021 18:22:38 GMT, William Kemper <wkemper at openjdk.org> wrote:
> This is rebased pull request of https://github.com/openjdk/shenandoah/pull/32.
>
> There are bugs in region promotion.
>
> * Humongous object continuation region remainder object starts are not registered for remembered set scanning purposes.
> * Also, iterating over humongous objects at promotion time to set card table values is inefficient. This is better delayed until card table scanning.
> * Regions that are not either regular or humongous should not get promoted, in particular the cset region state needs to be excluded.
> * We need to prevent regions that contain TLABs or GCLABs from getting promoted with these remaining active. One could retire those LABs once again at final update refs, but that would be inefficient. An alternative defensive and robust fix is to exclude regions that contain any TLAB or GCLAB from promotion. This should not restrict promotions much, because regions tend to fill up as they age and eventually they won't have LABs.
>
> All of the above is fixed by the commits proposed here.
> This PR is best applied after PR #30, the outcome of which it is rebased to at the moment.
This pull request has now been integrated.
Changeset: 41ed8466
Author: William Kemper <wkemper at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/41ed8466724ff576815ac35a1f89ca55f105eca6
Stats: 140 lines in 7 files changed: 73 ins; 58 del; 9 mod
Fix Region Promotion
Co-authored-by: Bernd Mathiske <bmathiske at openjdk.org>
Reviewed-by: rkennke
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/36
More information about the shenandoah-dev
mailing list