JDK-8327452 : G1: Improve scalability of Merge Log Buffers
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 23
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-03-06
  • Updated: 2024-03-19
  • Resolved: 2024-03-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 23
23 b14Fixed
Related Reports
Relates :  
Description
Recent scalability testing with G1 showed that some phases do not scale well with number of threads.

Using Bigramtester@20gb showed that on a large machine, with ~30 threads the Merge Log Buffers phases takes about 1% of gc pause time (~3ms) on average; with >100 threads it takes around 13% already (~14ms) - note that this is the same application with roughly the same amount of cards generated.

This seems to be related to dequeuing buffers from the DCQS. Some testing showed that quadrupling the buffer sizes decreases this time to ~6%.
Comments
Changeset: 49d80089 Author: Ivan Walulya <iwalulya@openjdk.org> Date: 2024-03-13 10:15:11 +0000 URL: https://git.openjdk.org/jdk/commit/49d8008947534898e2ba36e2d81d87d6ae4b4c02
13-03-2024

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/18134 Date: 2024-03-06 11:18:03 +0000
06-03-2024