RFR: 8233697: CHT: Iteration parallelization [v2]

Ivan Walulya iwalulya at openjdk.org
Thu Oct 20 20:30:52 UTC 2022


> Hi,
> 
> Please review this change to add parallel iteration of the ConcurrentHashTable. The iteration should be done during a safepoint without concurrent modifications to the ConcurrentHashTable.
> 
> Usecase is in parallelizing the merging of large remsets for G1.
> 
> Some background: The problem is that particularly during (G1) mixed gc it happens that the distribution of contents in the CHT is very unbalanced - young gen regions have a very small remembered set (little work), and old gen regions very large ones (much work).
> 
> Since the current work distribution is based on whole remembered sets (i.e. CHTs), this makes for a very unbalanced merge remsets phase in G1 when you have quite a bit more than the number of old gen regions threads at your disposal.
> This negatively impacts pause time predictions (and obviously pause times are longer than necessary as many threads are idling to wait for the phase to complete).
> 
> This change only adds the infrastructure code in the CHT, there will be a follow-up with G1 changes.
> 
> Testing: tier 1-3

Ivan Walulya has updated the pull request incrementally with one additional commit since the last revision:

  thomas review

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10759/files
  - new: https://git.openjdk.org/jdk/pull/10759/files/b06a4e2c..0e3e0356

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10759&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10759&range=00-01

  Stats: 154 lines in 2 files changed: 68 ins; 66 del; 20 mod
  Patch: https://git.openjdk.org/jdk/pull/10759.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10759/head:pull/10759

PR: https://git.openjdk.org/jdk/pull/10759


More information about the hotspot-dev mailing list