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