RFR: 8255019: Shenandoah: Split STW and concurrent mark into separate classes [v24]

Zhengyu Gu zgu at openjdk.java.net
Mon Jan 11 13:54:08 UTC 2021


On Tue, 5 Jan 2021 13:49:12 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Zhengyu Gu has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 31 commits:
>> 
>>  - Merge
>>  - Update copyright years
>>  - Merge
>>  - Merge branch 'master' into JDK-8255019-sh-mark
>>  - Concurrent mark does not expect forwarded objects
>>  - Merge branch 'master' into JDK-8255019-sh-mark
>>  - Merge branch 'master' into JDK-8255019-sh-mark
>>  - Silent valgrind on potential memory leak
>>  - Merge branch 'master' into JDK-8255019-sh-mark
>>  - Removed ShenandoahConcurrentMark parameter from concurrent GC entry/op, etc.
>>  - ... and 21 more: https://git.openjdk.java.net/jdk/compare/a6c08813...b7390c08
>
> src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp line 161:
> 
>> 159:     // threads, and performance-wise it doesn't really matter. Adds about 1ms to
>> 160:     // full-gc.
>> 161:     {
> 
> This seems to revert JDK-8258490?

No. After splitting, full-gc never gets here.

> src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp line 168:
> 
>> 166:       while (satb_mq_set.apply_closure_to_completed_buffer(&cl));
>> 167:       bool do_nmethods = heap->unload_classes() && !ShenandoahConcurrentRoots::can_do_concurrent_class_unloading();
>> 168:       assert(!heap->has_forwarded_objects(), "Not expected");
> 
> Do you need to move this assert?

No, fixed.

> src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp line 335:
> 
>> 333:   ShenandoahReferenceProcessor* rp = _heap->ref_processor();
>> 334:   task_queues()->reserve(workers->active_workers());
>> 335:   ShenandoahMarkConcurrentRootsTask task(task_queues(), rp,  ShenandoahPhaseTimings::conc_mark_roots, workers->active_workers());
> 
> Excess space: `rp,  ShenandoahPhaseTimings`.

Fixed

> src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp line 249:
> 
>> 247:   rp->set_soft_reference_policy(true); // forcefully purge all soft references
>> 248: 
>> 249: 
> 
> Excess newline?

Fixed

> src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2019, 2019, Red Hat, Inc. All rights reserved.
> 
> Odd change: 2020 -> 2019.

Another merge error. Fixed.

> src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp line 96:
> 
>> 94:   TASKQUEUE_STATS_ONLY(task_queues()->print_taskqueue_stats());
>> 95:   TASKQUEUE_STATS_ONLY(task_queues()->reset_taskqueue_stats());
>> 96: 
> 
> Excess newline

Fixed

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

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


More information about the shenandoah-dev mailing list