RFR: 8309960: ParallelGC young collections very slow in DelayInducer
Thomas Schatzl
tschatzl at openjdk.org
Wed Jun 14 14:19:02 UTC 2023
On Wed, 14 Jun 2023 14:09:07 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
> Using the benchmark from the JBS ticket, one can observe the young-gc-pause regression is gone.
Changes requested by tschatzl (Reviewer).
src/hotspot/share/gc/parallel/psPromotionManager.cpp line 248:
> 246: // pause, so processing locally until large-objArray-split is implemented.
> 247:
> 248: process_popped_location_depth(task);
Suggestion:
// In PSCardTable::scavenge_contents_parallel(), when work is distributed
// among different workers, an object is never split between multiple workers.
// Therefore, if a worker gets owned a large objArray, it may accumulate
// many tasks (corresponding to every element in this array) in its
// task queue. When there are too many overflow tasks, publishing them
// (via try_push_to_taskqueue()) can incur noticeable overhead in Young GC
// pause, so it is better to process them locally until large-objArray-splitting is implemented.
process_popped_location_depth(task);
Feel free to incorporate only parts of this suggestion.
-------------
PR Review: https://git.openjdk.org/jdk/pull/14469#pullrequestreview-1479571793
PR Review Comment: https://git.openjdk.org/jdk/pull/14469#discussion_r1229694942
More information about the hotspot-gc-dev
mailing list