JDK-7182260 : G1: Fine grain RSet freeing bottleneck
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-07-06
  • Updated: 2014-03-14
  • Resolved: 2012-08-07
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 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Related Reports
Relates :  
Description
While investigating the behavior of G1 with the OpenDS benchmark, Laurent Daynes and Thomas Schatzl (at Oracle Labs) discovered that the freeing of finge grain RSet entries was the source of a significant slow down.

Specifically the slowdown was eeen while placing freed PerRegionTables on to the PerRegionTable free list individually.

As a result Thomas Schatzl has come up with a scheme where the PerRegionTables in an individual RSet are chained together (linked through the same link that is also used by the free list). When the RSet is freed - the chained PerRegionTables that make up the fine grain entries can be placed on to the global PerRegionTable free list in a single bulk freeing operation.

This should significantly reduce the number of compare-exchange operations performed when freeing dense fine-grain tables.

Since the fine-grain table is an opnely addressed hash table - a separate link for the next entry in the collision chain is added and maintained.

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/db823a892a55
14-08-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-emb/hotspot/rev/db823a892a55
06-08-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/db823a892a55
18-07-2012

EVALUATION The CAS that is performed while freeing the PerRegionTables that comprise the fine grain table entries is a serious bottleneck. The scheme implemented by Thomas signicantly reduces the number of CAS operations.
06-07-2012