RFR: 8280917: Simplify G1ConcurrentRefineThread activation [v5]

Kim Barrett kbarrett at openjdk.java.net
Tue Feb 8 09:06:53 UTC 2022


> Please review this change to to G1ConcurrentRefineThreads to simplify the
> activation mechanism.
> 
> We split the class into two subclasses, one for the "primary" refinement
> thread and another class for the remaining refinement threads.
> 
> The secondary threads are changed to use Monitor-based waits and notifications
> with a supporting request flag.
> 
> The primary thread uses an atomic activation threshold that also serves as "is
> running" state.  This activation threshold is used by the write barrier
> support to determine whether the thread's semaphore needs to be signaled.
> That threshold is now in the primary refinement thread rather than in the
> dirty card queue set to simplify threshold management and somewhat reduce
> coupling.
> 
> Testing:
> mach5 tier1-3
> 
> Manual tests with refinement thread logging enabled to verify expected
> activations occur.

Kim Barrett 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:

 - Merge branch 'master' into split-crt
 - add some description comments
 - Merge branch 'master' into split-crt
 - fix primary thread notification safepoint check
 - update copyrights
 - refactor refinement threads

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7282/files
  - new: https://git.openjdk.java.net/jdk/pull/7282/files/5192502c..4051881e

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7282&range=04
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7282&range=03-04

  Stats: 4903 lines in 200 files changed: 3634 ins; 733 del; 536 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7282.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7282/head:pull/7282

PR: https://git.openjdk.java.net/jdk/pull/7282



More information about the hotspot-gc-dev mailing list