RFR: 8280917: Simplify G1ConcurrentRefineThread activation [v3]

Kim Barrett kbarrett at openjdk.java.net
Wed Feb 2 00:27:40 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 incrementally with one additional commit since the last revision:

  fix primary thread notification safepoint check

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7282/files
  - new: https://git.openjdk.java.net/jdk/pull/7282/files/ba3f9a46..070e92a7

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

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 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