RFR: 8280917: Simplify G1ConcurrentRefineThread activation
Kim Barrett
kbarrett at openjdk.java.net
Mon Jan 31 00:14:25 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.
-------------
Commit messages:
- refactor refinement threads
Changes: https://git.openjdk.java.net/jdk/pull/7282/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7282&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8280917
Stats: 386 lines in 7 files changed: 237 ins; 96 del; 53 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