The ConcurrentGCPhaseManager class provides functionality and an API for (primarily) WhiteBox control of concurrent collection cycles. It supports controlling when such cycles are initiated and supports pausing a cycle at specified points. This provides a mechanism by which tests can put a concurrent collection into a particular state and hold it there while doing some test-related work, either verifying state expectations or doing some work that the test needs to do with the collection in a particular state.
Only G1 currently implements this API. While it was intended to be supported by other concurrent collectors, the internal APIs and implementation have turned out to not be a good fit for at least some, and no other collector provides an implementation. Even the G1 implementation has some issues.
This has inhibited testing of some features with concurrent collectors other than G1.
We should replace ConcurrentGCPhaseManager with some different mechanism that can be more easily adopted by all of the concurrent collectors. This will involve updating existing tests, but there aren't a large number of tests using the old facility.
Only G1 currently implements this API. While it was intended to be supported by other concurrent collectors, the internal APIs and implementation have turned out to not be a good fit for at least some, and no other collector provides an implementation. Even the G1 implementation has some issues.
This has inhibited testing of some features with concurrent collectors other than G1.
We should replace ConcurrentGCPhaseManager with some different mechanism that can be more easily adopted by all of the concurrent collectors. This will involve updating existing tests, but there aren't a large number of tests using the old facility.
- relates to
-
JDK-8236031 Refactor VM_G1TryInitiateConcMark
- Open
-
JDK-8241001 Improve logging in the ConcurrentGCBreakpoint mechanism
- Resolved
-
JDK-8235737 Inconsistent handling of _wb_conc_mark by G1
- Closed
-
JDK-8241002 Improve logging in the ConcurrentGCBreakpoint mechanism
- Closed
-
JDK-8169517 WhiteBox should provide concurrent GC phase control
- Resolved