[jdk17u-dev] RFR: 8310031: Parallel: Implement better work distribution for large object arrays in old gen

Richard Reingruber rrich at openjdk.org
Sun Feb 25 09:47:16 UTC 2024


I would like to backport this as a performance bug fix.

We received bug reports from users which have some young pauses of 30s, and even up to 50s (normally <1s) running large Gerrit instances (200GB heap, 100 gc threads).
We have tried to tune ParallelGC. Reducing the number of gc threads helps to make the pause time spikes smaller but this makes average pause times longer.

This pr depends on
https://github.com/openjdk/jdk17u-dev/pull/2226
https://github.com/openjdk/jdk17u-dev/pull/2227
https://github.com/openjdk/jdk17u-dev/pull/2228

All hunks except the following 2 applied after a trivial preparation change.
The 1st hunk of psCardTable.hpp did not apply because of different context. Resolved by inserting the new lines.
The 2nd hunk of psScavenge.cpp did not apply because of different context. Resolved by inserting the new lines.
Finally a few trivial changes are required (renaming and the like).

Risk is medium. We've done the downstream backport already many weeks ago.

I've tested on x86_64:
jdk:tier1       TEST_VM_OPTS="-XX:+UseParallelGC"
langtools:tier1 TEST_VM_OPTS="-XX:+UseParallelGC"

Local CI Testing:
The fix passed our CI testing (e.g. 2024-02-25): JTReg tests: tier1-4 of hotspot and jdk. All of Langtools and jaxp. JCK, SPECjvm2008, SPECjbb2015, Renaissance Suite, and SAP specific tests (also with ParallelGC).
Testing was done with fastdebug builds on the main platforms and also on Linux/PPC64le.

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

Depends on: https://git.openjdk.org/jdk17u-dev/pull/2228

Commit messages:
 - Fix build
 - 8310031: Parallel: Implement better work distribution for large object arrays in old gen
 - Prepare

Changes: https://git.openjdk.org/jdk17u-dev/pull/2230/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk17u-dev&pr=2230&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8310031
  Stats: 334 lines in 5 files changed: 177 ins; 70 del; 87 mod
  Patch: https://git.openjdk.org/jdk17u-dev/pull/2230.diff
  Fetch: git fetch https://git.openjdk.org/jdk17u-dev.git pull/2230/head:pull/2230

PR: https://git.openjdk.org/jdk17u-dev/pull/2230


More information about the jdk-updates-dev mailing list