RFR: 8335902: Parallel: Refactor VM_ParallelGCFailedAllocation and VM_ParallelGCSystemGC [v2]
Zhengyu Gu
zgu at openjdk.org
Wed Jul 10 20:29:40 UTC 2024
On Mon, 8 Jul 2024 16:31:43 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>> Similar cleanup as https://github.com/openjdk/jdk/pull/19056 but in Parallel. As a result, the corresponding code in `SerialHeap` and `ParallelScavengeHeap` share much similarity.
>>
>> The easiest way to review is to start from these two VM operations, `VM_ParallelCollectForAllocation` and `VM_ParallelGCCollect` and follow the new code directly, where one can see how allocation-failure triggers various GCs with different collection efforts.
>>
>> Test: tier1-6; perf-neural for dacapo, specjvm2008, specjbb2015 and cachestresser.
>
> Albert Mingkun Yang has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit:
>
> pgc-vm-operation
I really like this refactor, that brings parallel close to other GCs. Just a few nits, otherwise, LGTM
src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp line 273:
> 271:
> 272: bool is_tlab = false;
> 273: return mem_allocate_work(size, is_tlab, gc_overhead_limit_was_exceeded);
Suggest: `return mem_allocate_work(size, false /* is_tlab */, gc_overhead_limit_was_exceeded);`
src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp line 478:
> 476:
> 477: const bool clear_all_soft_refs = true;
> 478: do_full_collection_no_gc_locker(clear_all_soft_refs);
Suggest:
not define
`const bool clear_all_soft_refs = true;`
and do
`do_full_collection_no_gc_locker(true /* clear_all_soft_refs */);` instead
src/hotspot/share/gc/parallel/psVMOperations.cpp line 68:
> 66:
> 67: GCCauseSetter gccs(heap, _gc_cause);
> 68: heap->try_collect_at_safepoint(is_cause_full(_gc_cause));
can be simplified to `heap->try_collect_at_safepoint(_full);`
-------------
Marked as reviewed by zgu (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/20077#pullrequestreview-2166570482
PR Review Comment: https://git.openjdk.org/jdk/pull/20077#discussion_r1670678592
PR Review Comment: https://git.openjdk.org/jdk/pull/20077#discussion_r1671439533
PR Review Comment: https://git.openjdk.org/jdk/pull/20077#discussion_r1672170373
More information about the hotspot-gc-dev
mailing list