RFR: 8240239: Replace ConcurrentGCPhaseManager

Per Liden per.liden at oracle.com
Tue Mar 3 13:21:08 UTC 2020


Hi Kim,

On 2/28/20 10:48 PM, Kim Barrett wrote:
> Please review this change which removes the ConcurrentGCPhaseManager
> class and replaces it with ConcurrentGCBreakpoints.
> 
> This is joint work with Per Liden.
> 
> This change provides a client API, used by WhiteBox.  The usage model
> for a client is
> 
> (1) Acquire control of concurrent collection cycles.
> 
> (2) Do work that must be performed while the collection cycle is in a
> known state.
> 
> (3) Request the concurrent collector run to a named "breakpoint", or
> run to completion, and then hold there, waiting for further commands.
> 
> (4) Optionally goto (2).
> 
> (5) Release control of concurrent collection cycles.
> 
> Tests have been updated to use the new WhiteBox API.
> 
> This change provides implementations of the new mechanism for G1 and
> ZGC.  A Shenandoah implementation is being left to others, but we
> don't see any obvious reason for it to be difficult.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8240239
> 
> Webrev:
> https://cr.openjdk.java.net/~kbarrett/8240239/open.03/

This looks good to me. However, it would be good if someone else had a 
closer look at the G1 changes, as I'm feeling less confident reviewing 
that part.

cheers,
Per

> 
> To possibly simplify the review, the open patch is also provided as a
> pair of patches, one for removing the old mechanism and a second to
> add the new mechanism.
> 
> https://cr.openjdk.java.net/~kbarrett/8240239/remove_phase_control.03/
> Removes ConcurrentGCPhaseManager and its G1 implementation, except
> that tests are not modifed.
> 
> https://cr.openjdk.java.net/~kbarrett/8240239/control.03/
> Adds ConcurrenGCBreakpoints, with G1 and ZGC implementations, and
> updates tests to use it.
> 
> Testing:
> mach5 tier1-5, which includes all the updated and new tests.
> 



More information about the hotspot-gc-dev mailing list