RFR: 8240239: Replace ConcurrentGCPhaseManager
Kim Barrett
kim.barrett at oracle.com
Tue Mar 3 19:07:21 UTC 2020
> On Mar 3, 2020, at 8:21 AM, Per Liden <per.liden at oracle.com> wrote:
>
> 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.
Thanks.
Yeah, the G1 changes are not as nice as one might wish. I filed a couple of bugs
around G1’s initiation of concurrent marking while working on this change. See
https://bugs.openjdk.java.net/browse/JDK-8236031
https://bugs.openjdk.java.net/browse/JDK-8235737
I don’t think either of those block this change, but fixing them might make some
parts a little easier to understand.
More information about the hotspot-gc-dev
mailing list