RFR: 8280087: G1: Handle out-of-mark stack situations during reference processing more gracefully [v2]
Ivan Walulya
iwalulya at openjdk.org
Wed Dec 6 20:10:56 UTC 2023
> Hi all,
>
> Please review this change to modify how we grow the global marking stack used by Concurrent Marking. This patch allows for growing the marking stack without the need to copy over elements. Consequently, we can grow the marking stack even during the reference processing phase without the need to restart the marking cycle.
>
> This mainly addresses the issue where object marking work created during reference processing may overflow the global marking stack. Currently G1 just bails out with a fatal error as expanding the marking stack would require a restart which is not valid during the reference processing phase.
>
> We have decided to maintain the restart concurrent marking when the global mark stack overflows during the marking phase of the concurrent cycle as this offers better memory utilisation.
>
> Testing: Tier 1-5.
Ivan Walulya has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
- git issues
- add test
- initial + Thomas suggestions
- Thomas comments
- add test
- initial + Thomas suggestions
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/16979/files
- new: https://git.openjdk.org/jdk/pull/16979/files/9689e531..c54b8ab2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=16979&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=16979&range=00-01
Stats: 746104 lines in 3416 files changed: 150680 ins; 523986 del; 71438 mod
Patch: https://git.openjdk.org/jdk/pull/16979.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16979/head:pull/16979
PR: https://git.openjdk.org/jdk/pull/16979
More information about the hotspot-gc-dev
mailing list