16 Commits

Author SHA1 Message Date
Thomas Schatzl
7f9bbfa767 8043575: Dynamically parallelize reference processing work
In G1 automatically set the number of parallel Reference processing threads

Co-authored-by: Sangheon Kim <sangheon.kim@oracle.com>
Reviewed-by: sangheki, kbarrett
2018-06-18 12:11:59 +02:00
Thomas Schatzl
1a0553e4eb 8202845: Refactor reference processing for improved parallelism
Fold reference processing's nine phases into four to decrease startup and termination time of this phase.

Reviewed-by: kbarrett, sjohanss
2018-05-29 09:26:00 +02:00
Kim Barrett
056f7b3bd8 8203319: JDK-8201487 disabled too much queue balancing
Sometimes ignore ParallelRefProcBalancingEnabled.

Reviewed-by: tschatzl, sjohanss
2018-06-05 09:15:03 -04:00
Kim Barrett
6c20824cda 8203028: Simplify reference processing in light of JDK-8175797
Removed special handling of Reference.next

Reviewed-by: tschatzl, sjohanss, mchung
2018-05-26 03:11:50 -04:00
Thomas Schatzl
ec2d9845e0 8201491: G1 support for java.lang.ref.Reference precleaning
Implement single-threaded concurrent reference precleaning for G1.

Reviewed-by: sangheki, kbarrett
2018-05-14 11:47:03 +02:00
Goetz Lindenmaier
b72846bc20 8202745: Remove hyphens from "out-of-bounds"
Reviewed-by: rriggs, dholmes
2018-05-07 23:07:01 +02:00
Thomas Schatzl
9ed9e26d5c 8202781: Fix typo in DiscoveredListIterator::complete_enqeue
Reviewed-by: kbarrett
2018-05-08 16:49:20 +02:00
Thomas Schatzl
035d0190a3 8202017: Merge Reference Enqueuing phase with phase 3 of Reference processing
Do reference enqueuing work directly in phase 3 after every Reference.

Reviewed-by: kbarrett, sangheki
2018-05-08 10:01:29 +02:00
Thomas Schatzl
deb5bf745f 8202021: Improve variable naming in ReferenceProcesso
Reviewed-by: sangheki, sjohanss
2018-05-03 14:10:08 +02:00
Thomas Schatzl
945701e945 8201492: Properly implement non-contiguous generations for Reference discovery
Collectors like G1 implementing non-contiguous generations previously used an inexact but conservative area for discovery. Concurrent and STW reference processing could discover the same reference multiple times, potentially missing referents during evacuation. So these collectors had to take extra measures while concurrent marking/reference discovery has been running. This change makes discovery exact for G1 (and any collector using non-contiguous generations) so that concurrent discovery and STW discovery discover on strictly disjoint memory areas. This means that the mentioned situation can not occur any more, and extra work is not required any more too.

Reviewed-by: kbarrett, sjohanss
2018-05-03 14:09:00 +02:00
Thomas Schatzl
9b31b8f365 8201487: Do not rebalance reference processing queues if not doing parallel reference processing
Reviewed-by: sangheki, kbarrett
2018-04-18 11:36:48 +02:00
Stefan Karlsson
b9f2f3e199 8199275: Fix inclusions of allocation.inline.hpp
Reviewed-by: coleenp, kbarrett, dholmes
2018-03-08 09:56:29 +01:00
Erik Österlund
432a71e564 8198286: Direct memory accessors in typeArrayOop.hpp should use Access API
Reviewed-by: pliden, rkennke
2018-02-22 10:39:42 +01:00
Erik Österlund
3e5e2f03b1 8189871: Refactor GC barriers to use declarative semantics
Reviewed-by: pliden, rkennke, coleenp, dholmes, kbarrett, stefank
2017-11-20 13:07:44 +01:00
Stefan Karlsson
3fbc4aec64 8189359: Move native weak oops cleaning out of ReferenceProcessor
Reviewed-by: pliden, kbarrett
2017-10-18 21:13:35 +02:00
Erik Joelsson
3789983e89 8187443: Forest Consolidation: Move files to unified layout
Reviewed-by: darcy, ihse
2017-09-12 19:03:39 +02:00