376 Commits

Author SHA1 Message Date
Erik Helin
be4035c60a 8030646: track collection set membership in one place
Reviewed-by: tschatzl, jwilhelm
2015-01-26 10:32:35 +01:00
Marcus Larsson
7727fe0044 8072621: Clean up around VM_GC_Operations
Reviewed-by: brutisso, jmasa
2015-02-13 09:48:49 +01:00
Stefan Johansson
dc5a35154d 8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly failure
When checking for humongous objects to reclaim, we dirty cards that might belong to freed regions. Fixed by checking the region before dirtying.

Reviewed-by: tschatzl, brutisso
2015-02-03 15:50:06 +01:00
Claes Redestad
8d30377d50 8068037: Remove dead code in G1CollectedHeap
Reviewed-by: stefank, tschatzl
2015-01-08 14:13:03 +01:00
Thomas Schatzl
afb458ef0e 8048179: Early reclaim of large objects that are referenced by a few objects
Push the remembered sets of large objects with few referenced into the dirty card queue at the beginning of the evacuation so that they may end up with zero remembered set entries at the end of the collection, and are potentially reclaimed. Also improve timing measurements of the early reclaim mechanism, and shorten flag names.

Reviewed-by: brutisso, jmasa, dfazunen
2015-01-07 15:15:37 +01:00
Kim Barrett
57198d2b63 8067499: G1SATBCardTableModRefBS should not inherit from CardTableModRefBSForCTRS
G1SATBCardTableModRefBS inherits from CardTableModRefBS

Reviewed-by: mgerdin, brutisso, tschatzl
2014-12-18 13:26:37 -05:00
Jesper Wilhelmsson
12797a11c0 Merge 2014-12-22 17:40:46 +00:00
Thomas Schatzl
d530b1da99 8068036: assert(is_available(index)) failed in G1 cset
Some verification code iterated over the heap using the region mapping array. This is not allowed. Changed to use the regular iteration method with closure.

Reviewed-by: jwilhelm, brutisso
2014-12-22 16:49:24 +01:00
Thomas Schatzl
1be86b3412 8060025: Object copy time regressions after JDK-8031323 and JDK-8057536
Evaluate and improve object copy time by micro-optimizations and splitting out slow and fast paths aggressively.

Co-authored-by: Tony Printezis <tprintezis@twitter.com>
Reviewed-by: kbarrett, mgerdin, jmasa
2014-12-19 09:21:06 +01:00
Jesper Wilhelmsson
dfc952b138 Merge 2014-12-18 16:15:49 +01:00
Kim Barrett
093d2698fc 8066827: Remove ReferenceProcessor::clean_up_discovered_references()
Abandon rather than clean up discovered references.

Reviewed-by: jmasa, ysr
2014-12-17 22:32:44 -05:00
Yumin Qi
e4961abb71 Merge 2014-12-12 20:49:14 -08:00
Max Ockner
1d76295d70 8047290: Make Mutex::_no_safepoint_check_flag locks verify that this lock never checks for safepoint
Ensure consistent safepoint checking in Mutex/Monitor locking methods.

Reviewed-by: dholmes, dcubed, coleenp
2014-12-11 21:34:43 -05:00
Thomas Schatzl
5d868d4e0f 8066102: Clean up HeapRegionRemSet files
Remove dead code, tighten public interfaces and improve documentation in the HeapRegionRemSet implementation.

Reviewed-by: mgerdin, kbarrett
2014-12-09 12:47:19 +01:00
Mikael Gerdin
cc786b287d 8067655: Clean up G1 remembered set oop iteration
Pass on the static type G1ParPushHeapRSClosure to allow oop_iterate devirtualization

Reviewed-by: jmasa, kbarrett
2014-12-08 18:57:33 +01:00
Jesper Wilhelmsson
9b430f2262 Merge 2014-12-04 10:40:19 +01:00
Yumin Qi
9767fa7cb2 Merge 2014-12-03 20:32:33 -08:00
Max Ockner
91dbd4f088 8060074: os::free() takes MemoryTrackingLevel but doesn't need it
Cleaned up unused arguments in os::free and it's callers.

Reviewed-by: lfoltan, coleenp, ctornqvi, dholmes
2014-12-01 12:16:15 -05:00
Leonid Mesnik
c8a147b8c7 8065579: WB method to start G1 concurrent mark cycle should be introduced
Add a WhiteBox callback to the VM to start a concurrent mark cycle in G1.

Reviewed-by: tschatzl, sjohanss
2014-11-28 09:33:48 +01:00
Mikael Gerdin
b5ef32af36 8065358: Refactor G1s usage of save_marks and reduce related races
Stop using save_marks in G1 related code and make setting the replacement field less racy.

Reviewed-by: brutisso, tschatzl
2014-11-26 10:53:31 +01:00
Kim Barrett
8f8d87ece5 8061748: Remove check_ct_logs_at_safepoint()
Remove unused function and related closure class

Reviewed-by: jwilhelm, mgerdin
2014-10-23 16:19:32 -04:00
Erik Helin
3a3e45ab40 8061630: G1 iterates over JNIHandles two times
Reviewed-by: mgerdin, brutisso
2014-10-23 11:43:29 +02:00
Erik Helin
f3997d8eed 8064721: The card tables only ever need two covering regions
Reviewed-by: jmasa, tschatzl, kbarrett
2014-11-18 10:36:42 +01:00
Staffan Friberg
04bdb774e1 8064473: Improved handling of age during object copy in G1
Reviewed-by: brutisso, tschatzl
2014-11-14 15:03:39 +01:00
Marcus Larsson
46e9fb5176 6979279: remove special-case code for ParallelGCThreads==0
Reviewed-by: jwilhelm, brutisso, kbarrett
2014-10-21 11:57:22 +02:00
Stefan Johansson
bd227a9bac 8058568: GC cleanup phase can cause G1 skipping a System.gc()
Marking G1 FullGC as a _full collection and passing down the correct before count.

Reviewed-by: brutisso, mgerdin
2014-10-20 10:18:17 +02:00
Stefan Karlsson
d410f19961 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Reviewed-by: mgerdin, coleenp, bdelsart
2014-10-02 10:55:36 +02:00
Sangheon Kim
8d288ccc54 8027428: Different conditions for printing taskqueue statistics for parallel gc, parNew and G1
Changed flag names for printing taskqueue and termination statistics for parallel gc, parNew and G1.

Reviewed-by: jwilhelm, brutisso, tschatzl
2014-10-14 20:58:43 +02:00
Sangheon Kim
3f18eda414 8058801: G1TraceReclaimDeadHumongousObjectsAtYoungGC only prints humongous object liveness output when there is at least one candidate humongous object
If G1TraceReclaimDeadHumongousObjectsAtYoungGC is enabled, always print humongous object liveness output.

Reviewed-by: tschatzl
2014-10-10 12:15:51 +02:00
Thomas Schatzl
60f3ade82b 8059758: Footprint regressions with JDK-8038423
Changes in JDK-8038423 always initialize (zero out) virtual memory used for auxiliary data structures. This causes a footprint regression for G1 in startup benchmarks. This is because they do not touch that memory at all, so the operating system does not actually commit these pages. The fix is to, if the initialization value of the data structures matches the default value of just committed memory (=0), do not do anything.

Reviewed-by: jwilhelm, brutisso
2014-10-09 11:40:11 +02:00
Marcus Larsson
6d1c35615a 8058298: Separate heap region iterator claim values from the data structures iterated over
Reviewed-by: tschatzl, brutisso
2014-10-07 14:54:53 +02:00
Stefan Johansson
18eb46eb95 8059466: Force young GC to initiate marking cycle when stat update is requested
Enable yc to be forced for stat update.

Reviewed-by: mgerdin, jcoomes
2014-10-06 10:11:13 +02:00
Jesper Wilhelmsson
f9b921bd25 Merge 2014-09-22 16:22:21 +02:00
Antonios Printezis
da5afa76ab 8058495: G1: normalize names for isHumongous() and friends
Reviewed-by: tschatzl, brutisso
2014-09-23 11:43:24 +02:00
Niclas Adlertz
37c8ef911c Merge 2014-09-19 17:14:13 +02:00
Tobias Hartmann
cd01de591a 8015774: Add support for multiple code heaps
Support for segmentation of the code cache. Separate code heaps are created and used to store code of different types.

Reviewed-by: kvn, iveresov, roland, anoll, egahlin, sla
2014-09-17 08:00:07 +02:00
Thomas Schatzl
adf66602a0 8052172: Evacuation failure handling in G1 does not evacuate all objects if -XX:-G1DeferredRSUpdate is set
Remove -XX:-G1DeferredRSUpdate functionality as it is racy. During evacuation failure handling, threads where evacuation failure handling occurred may try to add remembered sets to regions which remembered sets are currently being scanned. The iterator to handle the remembered set scan does not support addition of entries during scan and so may skip valid references.

Reviewed-by: iveresov, brutisso, mgerdin
2014-09-16 10:28:15 +02:00
John Coomes
40155ae18d 8057818: collect allocation context statistics at gc pauses
Reviewed-by: mikael, jmasa
2014-09-10 13:01:13 -07:00
Stefan Johansson
f8137659f5 8057536: Refactor G1 to allow context specific allocations
Splitting out a g1 allocator class to simply specialized allocators which can associate each allocation with a given context.

Reviewed-by: mgerdin, brutisso
2014-09-05 09:49:19 +02:00
Marcus Larsson
f6ab247c45 8055091: CollectedHeap::_reserved usage should be cleaned up
Added an initialization function for _reserved.

Reviewed-by: mgerdin, jwilhelm
2014-09-18 12:45:45 +02:00
Mikael Gerdin
10379e7e82 8048268: G1 Code Root Migration performs poorly
Replace G1CodeRootSet with a Hashtable based implementation, merge Code Root Migration phase into Code Root Scanning

Reviewed-by: jmasa, brutisso, tschatzl
2014-08-29 13:12:21 +02:00
Thomas Schatzl
9086b5795f 8054819: Rename HeapRegionSeq to HeapRegionManager
Reviewed-by: jwilhelm, jmasa
2014-08-26 09:36:53 +02:00
Stefan Karlsson
2bf343ea50 8055416: Several vm/gc/heap/summary "After GC" events emitted for the same GC ID
Reviewed-by: brutisso, ehelin
2014-08-25 09:10:13 +02:00
Leonid Mesnik
6715fc0bed 8055098: WB API should be extended to provide information about size and age of object
Extend the WhiteBox API to provide information about the size and age of objects. Further add a mechanism to trigger a young GC.

Reviewed-by: tschatzl, sjohanss
2014-08-21 16:44:41 +02:00
Thomas Schatzl
100e51a339 8038423: G1: Decommit memory within heap
Allow G1 to decommit memory of arbitrary regions within the heap and their associated auxiliary data structures card table, BOT, hot card cache, and mark bitmaps.

Reviewed-by: mgerdin, brutisso, jwilhelm
2014-08-19 14:09:10 +02:00
Poonam Bajaj
2617d54723 8044406: JVM crash with JDK8 (build 1.8.0-b132) with G1 GC
Fill the last card that has been allocated into with a dummy object

Reviewed-by: tschatzl, mgerdin
2014-08-18 19:30:24 -07:00
Thomas Schatzl
2ee5ee89d4 8054818: Refactor HeapRegionSeq to manage heap region and auxiliary data
Let HeapRegionSeq manage the heap region and auxiliary data to decrease the amount of responsibilities of G1CollectedHeap, and encapsulate this work from other code.

Reviewed-by: jwilhelm, jmasa, mgerdin, brutisso
2014-08-18 16:10:44 +02:00
Thomas Schatzl
94d0494b27 8054341: Remove some obsolete code in G1CollectedHeap class
Remove dead code.

Reviewed-by: stefank, brutisso
2014-08-07 22:28:53 +02:00
Stefan Karlsson
ef47f5dc0e 8048269: Add flag to turn off class unloading after G1 concurrent mark
Added -XX:+/-ClassUnloadingWithConcurrentMark

Reviewed-by: jmasa, brutisso, mgerdin
2014-08-06 09:55:16 +02:00
Thomas Schatzl
a959c0971e 8051973: Eager reclaim leaves marks of marked but reclaimed objects on the next bitmap
Eager reclaim also needs to clear marks of eagerly reclaimed regions if they have already been marked during concurrent mark.

Reviewed-by: jmasa
2014-07-31 09:23:24 +02:00