RFR: 8204686: Dynamic parallel reference processing support for Parallel GC [v3]

Leo Korinth lkorinth at openjdk.java.net
Fri Jun 4 08:00:17 UTC 2021

> The first part:
> 1) sets `ParallelRefProcEnabled` to true if we have multiple threads (in Parallel)
> 2) removes the field `_adjust_no_of_processing_threads` so that Parallel and G1 handles dynamic resizing the same
> 3) removes an early return --- `ergo_proc_thread_count()` already adjusts for `ReferencesPerThread == 0`
> The second part tries something else. It makes `ParallelRefProcEnabled` default to true for all GCs and does not take into consideration the amount of gc threads. I have talked to Thomas Schatzl  before posting this and we will probably *not* use part two. Reasons include that we can then no longer read the flag ParallelRefProcEnabled to see if we are going to do parallel ref processing as it will be true even if we only have one thread (or are running Serial GC). I still want to show the possibility.
> Part three shows the impact on test cases when part two is applied. I will need to adjust part three if we remove Part 2.
> Please take an extra look at the removal of the early return, it looks valid to me and `hotspot_gc` passes.
> I will try to get this into 17, but if review and CSR takes time I will postpone it to 18. I suggest dropping part 2 and will do so if no one objects.

Leo Korinth has updated the pull request incrementally with one additional commit since the last revision:

  rerun tests


  - all: https://git.openjdk.java.net/jdk/pull/4253/files
  - new: https://git.openjdk.java.net/jdk/pull/4253/files/3ef7e287..d0008153

 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4253&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4253&range=01-02

  Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4253.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4253/head:pull/4253

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

More information about the hotspot-gc-dev mailing list