RFR: 8265461: G1: Forwarding pointer removal thread sizing

Leo Korinth lkorinth at openjdk.java.net
Wed Apr 21 13:05:41 UTC 2021


On Tue, 20 Apr 2021 09:34:45 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   can I have reviews for this change that improves forwarding pointer removal handling by adding thread sizing to the work gang?
> 
> Since work is distributed per region at the moment, it does not make sense to start more threads than regions.
> 
> This can particularly help performance with object/region pinning.
> 
> Testing: tier1-3, using self-verification code
> 
> Thanks,
>   Thomas

src/hotspot/share/gc/g1/g1CollectedHeap.cpp line 3665:

> 3663: 
> 3664:   _expand_heap_after_alloc_failure = true;
> 3665:   _num_regions_failed_evacuation = false;

_num_regions_failed_evacuation = 0; ?

src/hotspot/share/gc/g1/g1EvacFailure.cpp line 211:

> 209: 
> 210: public:
> 211:   RemoveSelfForwardPtrHRClosure(G1RedirtyCardsQueueSet* rdcqs, uint worker_id, uint volatile* num_failed_regions) :

Maybe increment failed regions through G1CollectedHeap instead of a pointer to the value?

src/hotspot/share/gc/g1/g1EvacFailure.cpp line 285:

> 283: uint G1ParRemoveSelfForwardPtrsTask::num_failed_regions() const {
> 284:   return Atomic::load(&_num_failed_regions);
> 285: }

Maybe add newline, C++11 allows no newline, but github complains.

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

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



More information about the hotspot-gc-dev mailing list