RFR: 8261473: Shenandoah: Add breakpoint suppoprt [v2]

Aleksey Shipilev shade at openjdk.java.net
Thu Feb 18 13:23:40 UTC 2021


On Wed, 10 Feb 2021 20:13:52 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

>> Please review this patch that adds breakpoint support for Shenandoah, that allows Shenandoah to access a few tests:
>> 
>> gc/TestConcurrentGCBreakpoints.java
>> gc/TestJNIWeak/TestJNIWeak.java
>> gc/TestReferenceClearDuringMarking.java
>> gc/TestReferenceClearDuringReferenceProcessing.java
>> gc/TestReferenceRefersTo.java
>> 
>> The drawback is that above tests can not run with passive mode, which can result tests to hang, as breakpoints only apply to concurrent GC.
>> 
>> Test:
>> - [x] hotspot_gc_shenandoah
>> - [x] tier1 with Shenandoah
>
> Zhengyu Gu has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
> 
>  - Merge
>  - update
>  - init update

Looks fine, minor nits.

src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp line 52:

> 50: 
> 51: // Breakpoint support
> 52: class ShenandoahConcurrentGCScope : public StackObj {

Let's call these `ShenandoahGCBreakpointScope` and `ShenandoahMarkBreakpointScope`?

src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp line 476:

> 474: bool ShenandoahControlThread::is_async_gc(GCCause::Cause cause) const {
> 475:   return cause == GCCause::_wb_breakpoint;
> 476: }

Do we really need this method? What is "async gc" anyway? I think you can just inline the method at its only use.

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

Marked as reviewed by shade (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2489



More information about the hotspot-gc-dev mailing list