United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7182260 G1: Fine grain RSet freeing bottleneck
JDK-7182260 : G1: Fine grain RSet freeing bottleneck

Details
Type:
Enhancement
Submit Date:
2012-07-06
Status:
Resolved
Updated Date:
2013-04-30
Project Name:
JDK
Resolved Date:
2012-08-07
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
8
Fixed Versions:
hs24 (b19)

Related Reports
Backport:
Backport:
Backport:
Backport:

Sub Tasks

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

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.
                                     
2012-07-06
EVALUATION

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

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

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



Hardware and Software, Engineered to Work Together