77 Commits

Author SHA1 Message Date
Thomas Schatzl
efe03d5a90 8219100: Improve do_collection_pause_at_safepoint
Reviewed-by: kbarrett, sangheki
2019-03-25 14:11:09 +01:00
Kim Barrett
725a467ad8 8219613: Use NonJavaThread PtrQueues
Init and use NJT queues, remove shared SATB queue.

Co-authored-by: Aleksey Shipilev <shade@redhat.com>
Reviewed-by: shade, zgu, pliden, tschatzl
2019-03-05 19:54:33 -05:00
Thomas Schatzl
5fe5d0a90a 8219747: Remove g1_ prefix to g1_remset and g1_policy members in G1CollectedHeap
Reviewed-by: shade, sangheki
2019-03-04 11:49:16 +01:00
Kim Barrett
d2c690e80b 8218089: Rename DirtyCardQueue et al to follow usual G1 naming conventions
Move files and rename classes.

Reviewed-by: tschatzl, lkorinth
2019-02-13 17:38:14 -05:00
Zhengyu Gu
85e19d8beb 8216072: Remove TaskTerminator's assignment operator
Reviewed-by: tschatzl, rkennke, kbarrett
2019-01-31 10:18:41 -05:00
Thomas Schatzl
d800361151 8213229: Investigate treating StringTable as weak in young collections
Reviewed-by: zgu, kbarrett
2019-01-29 11:30:17 +01:00
Zhengyu Gu
b9333e1d81 8215299: Remove G1CMTask::should_exit_termination()'s undesirable side-effect
Reviewed-by: kbarrett, rkennke, tschatzl
2019-01-09 19:05:05 -05:00
Zhengyu Gu
b9769c732e 8204947: Port ShenandoahTaskTerminator to mainline and make it default
Reviewed-by: tschatzl, rkennke
2018-12-07 13:55:06 -05:00
Man Cao
df4b7015bf 8213224: Move code related to GC threads calculation out of AdaptiveSizePolicy
Consolidate code related to GC threads calculation into a single class

Reviewed-by: tschatzl, pliden
2018-12-07 12:46:31 +08:00
Thomas Schatzl
eb5557a98e 8214791: Consistently name gc files containing VM operations
Name all gc files containing VM operations according to a <gc>VMOperations.?pp.

Reviewed-by: coleenp, dholmes
2018-12-06 15:44:13 +01:00
Thomas Schatzl
613912a595 8159440: Move marking of promoted objects during initial mark into the concurrent phase
Reviewed-by: sjohanss, kbarrett
2018-12-06 13:55:22 +01:00
Thomas Schatzl
0f0b8626fc 8213996: Remove one of the SparsePRT entry tables
Remove unused functionality in SparsePRT

Reviewed-by: shade, sjohanss
2018-11-28 11:06:58 +01:00
Kim Barrett
5e0d5efe4c 8213352: Separate BufferNode allocation from PtrQueueSet
Move free-list management and allocation to new class.

Reviewed-by: tschatzl, sjohanss
2018-11-15 19:59:10 -05:00
Thomas Schatzl
56db122656 8213307: G1 should clean up RMT with ClassUnloadingWithConcurrentMark
Re-enable cleanup of the ResolvedMethodTable after changes in JDK-8206423.

Reviewed-by: shade, coleenp
2018-11-13 11:45:16 +01:00
Thomas Schatzl
0d19f0bb51 6490394: G1: Allow heap shrinking / memory unmapping after reclaiming regions during Remark
Reviewed-by: sjohanss, sangheki
2018-10-31 13:43:57 +01:00
Coleen Phillimore
7ef28cb2bc 8209645: Split ClassLoaderData and ClassLoaderDataGraph into separate files
Reviewed-by: iklam, stuefe
2018-09-28 16:07:39 -04:00
Thomas Schatzl
159a4de4c8 8210557: G1 next bitmap verification at the end of concurrent mark sometimes fails
Removed unnecessary verification that can cause spurious false alarm.

Reviewed-by: sjohanss, kbarrett
2018-09-21 15:11:09 +02:00
Kim Barrett
1b02e70184 8072498: Multi-thread JNI weak reference processing
Add parallel processing support to WeakProcessor.

Reviewed-by: tschatzl, sjohanss
2018-08-28 12:57:40 -04:00
Gerard Ziemski
b75805c1a5 8195100: Use a low latency hashtable for SymbolTable
Used concurrentHashTable, similar to stringTable

Reviewed-by: coleenp, kbarrett, iklam, pliden
2018-08-14 18:42:14 -05:00
Thomas Schatzl
d702d5f8d2 8208669: GC changes to allow enabling -Wreorder
Reviewed-by: kbarrett
2018-08-08 15:31:06 +02:00
Zhengyu Gu
4555c28590 8205921: Optimizing best-of-2 work stealing queue selection
Bias towards stealing from queues that we recently successfully stole from to decrease the number of unsuccessful steal attempts.

Co-authored-by: Thomas Schatzl <thomas.schatzl@oracle.com>
Reviewed-by: eosterlund, kbarrett
2018-08-03 11:06:10 +02:00
Thomas Schatzl
cb9a168f8b 8205426: Humongous continues remembered set does not match humongous start region one after Remark
Remembered set states for humongous objects crossing an internal per-thread processing threshold could synchronized if the humongous continues regions were processed first.

Reviewed-by: ehelin, kbarrett
2018-07-09 10:19:51 +02:00
Stefan Karlsson
11813888b8 8204540: Automatic oop closure devirtualization
Reviewed-by: kbarrett, eosterlund
2018-05-26 06:59:49 +02:00
Chris Phillips
561ec75b9b 8203030: Zero s390 31 bit size_t type conflicts in shared code
Cast to size_t or change to size_t foe compatibility with other archs.

Reviewed-by: pliden, dholmes
2018-06-19 10:00:39 -04:00
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
4c0fa36251 8202049: G1: ReferenceProcessor doesn't handle mark stack overflow
Issue a fatal error when mark stack overflows during reference processing in the Remark phase

Reviewed-by: kbarrett
2018-06-07 11:20:55 +02:00
Sangheon Kim
4fb9d6717d 8204094: assert(worker_i < _length) failed: Worker 15 is greater than max: 11 at ReferenceProcessorPhaseTimes
Reviewed-by: kbarrett, tschatzl
2018-06-04 21:20:16 -07:00
Coleen Phillimore
e3a3941c9a 8202813: Move vm_weak processing from SystemDictionary to WeakProcessor
SystemDictionary has all strong roots.  The weak oop_storage is processed by the WeakProcessor so it can be scanned and cleared concurrently and/or by parallel threads.

Reviewed-by: kbarrett, sjohanss
2018-05-29 15:50:27 -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
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
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
Kim Barrett
a99eca12cc 8201826: G1: Don't invoke WeakProcessor if mark stack has overflowed
Move WeakProcessor invocation after overflow check

Reviewed-by: stefank, tschatzl
2018-04-23 16:00:56 -04:00
Thomas Schatzl
2006105114 8201527: Bump default value of G1RefProcDrainInterval
Due to high startup cost of marking, lower the frequency of draining the mark stack generated by reference processing.

Reviewed-by: sangheki, sjohanss
2018-04-18 19:00:32 +02:00
Thomas Schatzl
6db76f1af6 8201172: Parallelize Remset Tracking Update Before Rebuild phase
Reviewed-by: sangheki, sjohanss
2018-04-18 11:36:48 +02:00
Thomas Schatzl
c62a6abe91 8201490: Improve concurrent mark keep alive closure performance
Avoid doing marking work unless absolutely required.

Reviewed-by: sjohanss, kbarrett
2018-04-18 11:36:48 +02:00
Thomas Schatzl
dc7aa2ca03 8200730: Fix debug=gc+phases time tracking in Remark and Cleanup
Timing in Remark and Cleanup pauses did not use instance variables for the scoped timing objects, so these durations were always zero.

Reviewed-by: sangheki, sjohanss
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
Thomas Schatzl
9db71579ee 8154528: Reclaim regions emptied by marking in Remark pause
Reviewed-by: shade, sjohanss
2018-04-18 11:36:48 +02:00
Thomas Schatzl
7c09cf644b 8178105: Switch mark bitmaps during Remark
Reviewed-by: sjohanss, sangheki
2018-04-18 11:36:48 +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
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
Thomas Schatzl
e5ec636e7d 8200305: Update gc,liveness output with remset state after rebuild remset concurrently changes
Reviewed-by: sjohanss, sangheki
2018-04-04 14:51:26 +02:00
Thomas Schatzl
94d2a9db4c 8200074: Remove G1ConcurrentMark::_concurrent_marking_in_progress
Reviewed-by: sjohanss, sangheki
2018-04-04 11:21:14 +02:00
Thomas Schatzl
ee1bd0136b 8200255: Remove G1CMTask::_concurrent
Reviewed-by: sangheki, sjohanss
2018-04-04 11:21:14 +02:00
Thomas Schatzl
5780affe90 8200234: Cleanup Remark and Cleanup pause code
Remove redundant methods, factor out verification code and simplify code in Remark and Cleanup pause code.

Reviewed-by: sangheki, sjohanss
2018-04-04 11:21:14 +02:00
Leo Korinth
05dd65349b 8200371: In g1, rename ConcurrentMarkThread to G1ConcurrentMarkThread
Reviewed-by: tschatzl, sangheki
2018-04-03 12:05:49 +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