83 Commits

Author SHA1 Message Date
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
Robbin Ehn
6b62a66298 8204613: StringTable: Calculates wrong number of uncleaned items
Reviewed-by: pliden, coleenp
2018-06-14 07:26:27 +02:00
Kim Barrett
df34500027 8204585: Remove IN_ARCHIVE_ROOT from Access API
Replaced Access API with API on heap.

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Reviewed-by: jiangli, coleenp, tschatzl
2018-06-12 18:12:59 -04:00
Robbin Ehn
66f8951e15 8195097: Make it possible to process StringTable outside safepoint
Reviewed-by: coleenp, gziemski, iklam, jiangli
2018-06-07 14:11:56 +02:00
Coleen Phillimore
892a2af03f 8204301: Make OrderAccess functions available to hpp rather than inline.hpp files
Move orderAccess.inline.hpp into orderAccess.hpp and remove os.hpp inclusion and conditional os::is_MP() for fence on x86 platforms

Reviewed-by: dholmes, hseigel
2018-06-06 10:45:40 -04:00
Coleen Phillimore
3e3414dbf3 8203837: Split nmethod unloading from inline cache cleaning
Refactor cleaning inline caches to after GC do_unloading.

Reviewed-by: thartmann, eosterlund
2018-05-02 11:28:49 -04:00
Thomas Schatzl
fd0d572bb5 8202842: G1 footprint regressions in jdk11+10
Lazily initialize G1FromCardCache to save on startup footprint if AlwaysPretouch is disabled.

Reviewed-by: sjohanss, redestad
2018-05-28 11:13:21 +02:00
Thomas Schatzl
b34a8c43f1 8202780: Remove EnqueueTask related code from ReferenceProcessor after JDK-8202017
Remove code obsoleted by JDK-8202017

Reviewed-by: kbarrett, sangheki
2018-05-09 13:37:05 +02:00
Stefan Karlsson
99072b90d7 8202647: Add deduplicate_string function to CollectedHeap
Reviewed-by: rehn, sjohanss
2018-05-07 14:57:25 +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
Coleen Phillimore
204ba9a580 8202447: Fix unloading_occurred to mean unloading_occurred
Nmethod unloading does not need to test for jvmti to set unloading_occurred, nor do we need to clean weak Klasses in metadata if unloading does not occur.

Reviewed-by: sspitsyn, rehn
2018-04-27 15:00:04 -04:00
Thomas Schatzl
deb5bf745f 8202021: Improve variable naming in ReferenceProcesso
Reviewed-by: sangheki, sjohanss
2018-05-03 14:10:08 +02:00
Thomas Schatzl
73771f97e9 8202018: Move card table clear before enqueuing pending references
Move card table clearing in preparation of removal of the Reference enqueue phase.

Reviewed-by: sangheki, sjohanss
2018-05-03 14:09:39 +02:00
Thomas Schatzl
91ba4b5676 8201640: Use _ref_processor_* member variables directly in G1CollectedHeap
Reviewed-by: sjohanss
2018-05-03 14:09:21 +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
Stefan Johansson
7f7d103c85 8191471: Elastic TLABs for G1
Reviewed-by: tschatzl, pliden
2018-05-02 13:44:46 +02:00
Thomas Schatzl
0f583c7817 6672778: G1 should trim task queues more aggressively during evacuation pauses
Regularly try to drain task queues. This helps memory usage and performance during garbage collection.

Reviewed-by: sjohanss, sangheki
2018-04-27 12:06:46 +02:00
Gerard Ziemski
edc81d17e1 8202150: [REDO] Split globals.hpp to factor out the Flag class
Factored out Flag out go globals, renamed to JVMFlag

Reviewed-by: coleenp, dholmes, kvn
2018-04-26 11:19:05 -05:00
Coleen Phillimore
8a427a07d8 8202164: Remove some unneeded BoolObjectClosure* is_alive parameters
Reviewed-by: kbarrett, stefank
2018-04-25 17:50:32 -04:00
Gerard Ziemski
816e2e5fe0 8202151: [BACKOUT] Split globals.hpp to factor out the Flag class
Backed out JDK-8081519

Reviewed-by: kvn
2018-04-23 14:51:16 -05:00
Gerard Ziemski
60723b7e3d 8081519: Split globals.hpp to factor out the Flag class
Factored out Flag out go globals, renamed to JVMFlag

Reviewed-by: coleenp, dholmes, kvn
2018-04-23 10:59:39 -05:00
Per Lidén
a4f21eeb03 8201646: Introduce ReferenceDiscoverer interface
Reviewed-by: stefank, tschatzl, rkennke
2018-04-19 07:54:50 +02:00
Coleen Phillimore
c215aa5889 8201537: Remove is_alive closure from Klass::is_loader_alive()
Remove is_alive closure from callers of Klass::is_loader_alive so that cleaning metadata doesn't require GC closure.

Reviewed-by: adinn, stefank
2018-04-18 13:37:39 -04:00
Coleen Phillimore
36d1d59425 8201505: Use WeakHandle for ProtectionDomainCacheTable and ResolvedMethodTable
8193524: Redefining a method that removes use of 1 or more lambda expressions causes the JVM to hang

Remove oop pointers from runtime data structures.

Co-authored-by: Lois Foltan <lois.foltan@oracle.com>
Reviewed-by: lfoltan, stefank
2018-04-18 12:06:53 -04:00
Thomas Schatzl
ebbd7cf90b 8201596: java.lang.ref.Reference processing total time logging broken
Fix "Reference Processing" and add "Weak Processing" time

Reviewed-by: kbarrett, sangheki
2018-04-18 11:36:48 +02:00
Thomas Schatzl
5b42f3ce0d 8200426: Make G1 code use _g1h members
Consistently use _g1h member names for cached G1CollectedHeap* variables.

Reviewed-by: sangheki, sjohanss
2018-04-18 11:36:48 +02:00
Per Lidén
ec504ecf84 8201362: Remove CollectedHeap::barrier_set()
Reviewed-by: shade, rkennke
2018-04-12 11:22:24 +02:00
Per Lidén
6825739d3f 8201318: Introduce GCThreadLocalData to abstract GC-specific data belonging to a thread
Reviewed-by: shade, rehn
2018-04-12 08:25:56 +02:00
Per Lidén
4c60e69b97 8201316: Move G1-related static members from JavaThread to G1BarrierSet
Reviewed-by: stefank, shade
2018-04-12 08:25:30 +02:00
Thomas Schatzl
381dceed47 8201365: Remove G1Policy::should_process_references()
Reviewed-by: shade
2018-04-11 11:37:19 +02:00
Thomas Schatzl
4fd82a111e 8200385: Eagerly reclaimed humongous objects leave mark in prev bitmap
Also clear marks on prev bitmap on eager reclaim

Reviewed-by: sangheki, sjohanss
2018-04-10 09:12:23 +02:00
Leo Korinth
30079a437a 8201171: Cleanup in g1CollectedHeap, change CamelCase to snake_case
Reviewed-by: sjohanss, tschatzl
2018-04-05 14:25:53 +02:00
Stefan Johansson
b758cec4ad 8200169: Flatten G1Allocator class hierarchy
Reviewed-by: tschatzl, sangheki
2018-04-06 11:41:21 +02:00
Erik Helin
b025fab0d2 8200626: Restore history for g1ConcurrentMarkThread.*
Reviewed-by: shade, sjohanss
2018-04-04 10:12:02 +02:00
Thomas Schatzl
d594ab7636 8151171: Bring g1ConcurrentMark files up to current coding conventions
Improve method naming, bracketing, use of _g1h member and general cleanup.

Reviewed-by: sangheki, sjohanss
2018-03-29 14:08:10 +02:00
Thomas Schatzl
5524494066 8199742: Clean up state flags in G1CollectorState
Remove, merge and update naming of flags in G1CollectorState

Reviewed-by: sangheki, sjohanss
2018-03-29 14:07:59 +02:00
Thomas Schatzl
7995d17bca 8199326: Remove G1 gc time stamp logic
G1 gc time stamp logic is unused completely after JDK-8180415, so removing it.

Reviewed-by: sangheki, sjohanss
2018-03-28 16:39:32 +02:00
Thomas Schatzl
83d7c657c4 8197573: Remove concurrent cleanup and secondary free list handling
Remove secondary free list and all associated functionality, moving the cleanup work into the Cleanup pause instead.

Reviewed-by: sangheki, sjohanss
2018-03-28 16:39:32 +02:00
Per Lidén
3b7962d614 8199918: Shorten names of CollectedHeap::Name members
Reviewed-by: shade, eosterlund
2018-03-28 11:38:47 +02:00
Thomas Schatzl
c30aef79df 8180415: Rebuild remembered sets during the concurrent cycle
In general maintain remembered sets of old regions only from the start of the concurrent cycle to the mixed gc they are used, at most until the end of the mixed phase.

Reviewed-by: sjohanss, sangheki
2018-03-26 16:51:43 +02:00
Thomas Schatzl
28fb5548de 8197850: Calculate liveness in regions during marking
Reviewed-by: sjohanss, sangheki
2018-03-26 16:51:43 +02:00
Thomas Schatzl
af7d8f0d69 8197569: Refactor eager reclaim for concurrent remembered set rebuilding
Expose information about eager reclaim region selection.

Reviewed-by: sjohanss, sangheki
2018-03-26 16:51:41 +02:00
Leo Korinth
9ccbbb67b3 8196865: G1 log for active workers is wrong
Reviewed-by: tschatzl, sjohanss
2018-03-23 16:25:47 +01:00
Stefan Karlsson
1a1aecd166 8200106: Move NoSafepointVerifier out from gcLocker.hpp
Reviewed-by: coleenp
2018-03-23 18:54:12 +01:00
Stefan Karlsson
f89abe4589 8199946: Move load/store and encode/decode out of oopDesc
Reviewed-by: eosterlund, coleenp, tschatzl
2018-03-15 21:24:10 +01:00
Coleen Phillimore
394e34d821 8199282: Remove ValueObj class for allocation subclassing for gc code
Reviewed-by: stefank, kbarrett
2018-03-14 07:27:19 -04:00
Thomas Stuefe
da674f0d0d 8199430: Rename MetaspaceAux to something more meaningful
Reviewed-by: zgu, coleenp
2018-03-11 07:11:03 +01:00
Erik Helin
f82bcaba53 8197852: Move G1DefaultPolicy into G1Policy
Reviewed-by: sjohanss, tschatzl
2018-03-12 09:46:12 +01:00
Stefan Karlsson
d42acfd37b 8199319: Remove handles.inline.hpp include from reflectionUtils.hpp
Reviewed-by: hseigel, dholmes
2018-03-08 19:10:25 +01:00
Erik Österlund
a06129a432 8195148: Collapse G1SATBCardTableModRefBS and G1SATBCardTableLoggingModRefBS into a single G1BarrierSet
Reviewed-by: ehelin, kbarrett
2018-03-06 08:36:44 +01:00