-
Enhancement
-
Resolution: Fixed
-
P4
-
8
-
b19
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2228168 | 8 | John Cuthbertson | P4 | Resolved | Fixed | b51 |
JDK-8017934 | 7u45 | John Cuthbertson | P4 | Closed | Fixed | b01 |
JDK-8002726 | 7u40 | John Cuthbertson | P4 | Closed | Fixed | b01 |
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.
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.
- backported by
-
JDK-2228168 G1: Fine grain RSet freeing bottleneck
-
- Resolved
-
-
JDK-8002726 G1: Fine grain RSet freeing bottleneck
-
- Closed
-
-
JDK-8002727 G1: Fine grain RSet freeing bottleneck
-
- Closed
-
-
JDK-8002728 G1: Fine grain RSet freeing bottleneck
-
- Closed
-
-
JDK-8017934 G1: Fine grain RSet freeing bottleneck
-
- Closed
-
- relates to
-
JDK-8037344 Use the "next" field to iterate over fine remembered instead of using the hash table
-
- Resolved
-
(1 relates to)