157 Commits

Author SHA1 Message Date
Stefan Karlsson
1a452ae3ae Merge 2014-09-23 12:52:57 +00:00
Joseph Provino
b0b5fa7bc6 8027450: Improve time reporting in G1 remark
Reviewed-by: stefank, tschatzl
2014-09-23 12:34:37 +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
John Coomes
40155ae18d 8057818: collect allocation context statistics at gc pauses
Reviewed-by: mikael, jmasa
2014-09-10 13:01:13 -07:00
Antonios Printezis
a2984b6c88 8057768: Make heap region region type in G1 HeapRegion explicit
Reviewed-by: brutisso, tschatzl
2014-09-15 12:19:31 +02:00
Thomas Schatzl
344be39551 8054808: Bitmap verification sometimes fails after Full GC aborts concurrent mark
The verification code that checked whether no bitmap mark had been found re-read HeapRegion::end() after the check on the bitmap. Concurrent humongous object allocation could have changed HeapRegion::end() in the meantime. Fix this by using the actual end of the region instead of HeapRegion::end() for comparison.

Reviewed-by: brutisso, jmasa
2014-08-28 17:05:41 +02:00
Thomas Schatzl
f789d43b8e 8055919: Remove dead code in G1 concurrent marking code
Reviewed-by: jmasa, jwilhelm
2014-08-26 14:15:50 +02:00
Thomas Schatzl
9086b5795f 8054819: Rename HeapRegionSeq to HeapRegionManager
Reviewed-by: jwilhelm, jmasa
2014-08-26 09:36:53 +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
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
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
Martin Doerr
071c3a3924 8050973: CMS/G1 GC: add missing Resource and Handle mark
Add Resource/HandleMark in the work() method of some AbstractGangTask to reclaim these resources earlier.

Reviewed-by: tschatzl, goetz
2014-07-29 10:26:09 +02:00
Thomas Schatzl
2e37a94622 8048085: Aborting marking just before remark results in useless additional clearing of the next mark bitmap
Skip clearing the next bitmap if we just recently aborted since the full GC already clears this bitmap.

Reviewed-by: brutisso
2014-07-21 09:59:46 +02:00
Stefan Karlsson
1b001a2afd 8049421: G1 Class Unloading after completing a concurrent mark cycle
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
2014-07-07 10:12:40 +02:00
Stefan Karlsson
ef1e9b3c80 8049420: Backout 8048248 to correct attribution
Reviewed-by: ehelin, brutisso
2014-07-07 12:37:11 +02:00
Stefan Karlsson
8c3aced316 8048248: G1 Class Unloading after completing a concurrent mark cycle
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
2014-07-07 10:12:40 +02:00
Goetz Lindenmaier
8e7c8f1d88 8044775: Improve usage of umbrella header atomic.inline.hpp
Reviewed-by: stefank, kvn
2014-06-04 11:56:44 +02:00
Bengt Rutisson
9672a26d51 8043607: Add a GC id as a log decoration similar to PrintGCTimeStamps
Reviewed-by: jwilhelm, ehelin, tschatzl
2014-06-19 13:31:14 +02:00
Dan Horak
88577971d0 8043722: Swapped usage of idx_t and bm_word_t types in parMarkBitMap.cpp
Clean up usage of idx_t and uintptr_t when using it in conjunction with BitMap::set_map(), casting to the appropriate type. Fixes compilation on S390.

Reviewed-by: tschatzl
2014-06-18 13:25:40 +02:00
Christian Thalinger
67ad89efd5 Merge 2014-05-22 16:26:05 -07:00
Jon Masamitsu
92baa3214c Merge 2014-05-19 08:09:35 -07:00
Per Lidén
04341bfffb 8040804: G1: Concurrent mark stuck in loop calling os::elapsedVTime()
Reviewed-by: brutisso, tschatzl
2014-05-14 14:32:23 +02:00
Per Lidén
3f35cb0ca0 8040803: G1: Concurrent mark hangs when mark stack overflows
Reviewed-by: brutisso, ehelin
2014-05-14 13:32:44 +02:00
Goetz Lindenmaier
fb62773268 8042737: Introduce umbrella header prefetch.inline.hpp
Reviewed-by: twisti, stefank
2014-05-08 15:37:17 +02:00
Bengt Rutisson
9968a23667 7132678: G1: verify that the marking bitmaps have no marks for objects over TAMS
Co-authored-by: Tony Printezis <tony.printezis@oracle.com>
Reviewed-by: jmasa, tschatzl, ehelin
2014-04-29 09:33:20 +02:00
Bengt Rutisson
5d967f0aea 8040722: G1: Clean up usages of heap_region_containing
Reviewed-by: tschatzl, jmasa
2014-04-17 15:57:02 +02:00
Per Lidén
f1edf66ef8 8039147: Cleanup SuspendibleThreadSet
Reviewed-by: brutisso, tschatzl, mgerdin
2014-04-11 12:29:24 +02:00
Stefan Karlsson
d78446aa45 8039743: Use correct format specifier to print size_t values and pointers in the GC code
Co-authored-by: Mikael Vidstedt <mikael.vidstedt@oracle.com>
Reviewed-by: jmasa, sjohanss
2014-04-09 13:54:32 +02:00
Stefan Karlsson
6583b826bb 8039244: Don't use UINT32_FORMAT and INT32_FORMAT when printing uints and ints in the GC code
Reviewed-by: brutisso, tschatzl
2014-04-04 09:46:10 +02:00
Jesper Wilhelmsson
034d486b08 8039089: List verification enabled in product builds
Replaced the verification call to a conditional one that only runs verification in debug builds.

Reviewed-by: brutisso, tschatzl
2014-04-03 16:20:16 +02:00
Vladimir Kempik
0ab60ab172 8016302: Change type of the number of GC workers to unsigned int (2)
Reviewed-by: tschatzl, jwilhelm
2014-04-03 17:49:31 +04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Mikael Gerdin
547e8e4b75 8037958: ConcurrentMark::cleanup leaks BitMaps if VerifyDuringGC is enabled
Allocate temporary BitMaps in the VMThread's resource area

Reviewed-by: stefank, sjohanss
2014-03-26 10:54:52 +01:00
Jesper Wilhelmsson
1e1ad7f132 8036025: Sort the freelist in order to shrink the heap
The free list is being maintained in a sorted fashion and old and humongous regions are allocated from the bottom of the heap while young regions are allocated at the top.

Co-authored-by: Staffan Friberg <staffan.friberg@oracle.com>
Reviewed-by: tschatzl, mgerdin
2014-02-28 15:27:09 +01:00
Per Lidén
731ef44b87 8036673: G1: Abort weak reference processing if mark stack overflows
Reviewed-by: brutisso, tschatzl
2014-03-17 15:18:45 +01:00
Bengt Rutisson
c88e3def4d 8034079: G1: Refactor the HeapRegionSet hierarchy
Reviewed-by: tschatzl, pliden
2014-03-14 10:15:46 +01:00
Jesper Wilhelmsson
81ba2e32c0 8025856: Fix typos in the GC code
Fix about 440 typos in comments in the VM code

Reviewed-by: mgerdin, tschatzl, coleenp, kmo, jcoomes
2014-01-23 14:47:23 +01:00
Thomas Schatzl
aeba3a8119 8027454: Do not traverse string table during G1 remark when treating them as strong roots during initial mark
Do not try to unlink string table entries unconditionally during remark. This is without side effects as the preceding initial mark always uses the string table as strong roots. Needs to be fixed with class unloading during concurrent mark.

Reviewed-by: brutisso, mgerdin
2014-01-20 11:47:29 +01:00
Thomas Schatzl
4bb3631855 8027476: Improve performance of Stringtable unlink
8027455: Improve symbol table scan times during gc pauses

Parallelize string table and symbol table scan during remark and full GC. Some additional statistics output if the experimental flag G1TraceStringSymbolTableScrubbing is set.

Reviewed-by: mgerdin, coleenp, brutisso
2014-01-20 11:47:07 +01:00
Erik Helin
5d5b1157d1 8029326: G1 does not check if threads gets created
Reviewed-by: brutisso, jmasa, jwilhelm
2013-12-09 08:20:45 +01:00
Lois Foltan
7bf953d005 7195622: CheckUnhandledOops has limited usefulness now
Enable CHECK_UNHANDLED_OOPS in fastdebug builds across all supported platforms.

Reviewed-by: coleenp, hseigel, dholmes, stefank, twisti, ihse, rdurbin
2013-09-26 10:25:02 -04:00
Thomas Schatzl
87a98b7267 8021823: G1: Concurrent marking crashes with -XX:ObjectAlignmentInBytes>=32 in 64bit VMs
Correctly calculate the initialization value for the shift between object start and bitmap bit in the G1 mark bitmaps.

Reviewed-by: tonyp
2013-09-11 10:19:16 +02:00
John Cuthbertson
f63547bf71 7145569: G1: optimize nmethods scanning
Add a list of nmethods to the RSet for a region that contain references into the region. Skip scanning the code cache during root scanning and scan the nmethod lists during RSet scanning instead.

Reviewed-by: tschatzl, brutisso, mgerdin, twisti, kvn
2013-08-15 10:52:18 +02:00
Staffan Larsen
718f3252f6 8005849: JEP 167: Event-Based JVM Tracing
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Bengt Rutisson <bengt.rutisson@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Co-authored-by: Erik Gahlin <erik.gahlin@oracle.com>
Co-authored-by: Erik Helin <erik.helin@oracle.com>
Co-authored-by: Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>
Co-authored-by: Keith McGuigan <keith.mcguigan@oracle.com>
Co-authored-by: Mattias Tobiasson <mattias.tobiasson@oracle.com>
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Co-authored-by: Mikael Auno <mikael.auno@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Co-authored-by: Nils Loodin <nils.loodin@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
Reviewed-by: acorn, coleenp, sla
2013-06-10 11:30:51 +02:00
Thomas Schatzl
5ebe77bb6b 8014240: G1: Add remembered set size information to output of G1PrintRegionLivenessInfo
Improve the output of G1PrintRegionLivenessInfo by adding a per-region remembered set size information column

Reviewed-by: jwilhelm, johnc
2013-05-16 13:02:33 +02:00
Stefan Karlsson
f0ae855b07 8013132: Add a flag to turn off the output of the verbose verification code
Reviewed-by: johnc, brutisso
2013-04-24 20:13:37 +02:00
Stefan Karlsson
e96efdaa1a 8011872: Include Bit Map addresses in the hs_err files
Reviewed-by: brutisso, jmasa
2013-04-10 14:26:49 +02:00
John Cuthbertson
a8087d1cb6 8008301: G1: guarantee(satb_mq_set.completed_buffers_num() == 0) failure
If the marking stack overflows while the marking tasks are draining the SATB buffers, remark will exit with some SATB buffers left unprocessed. Relax the guarantee to allow for overflow.

Reviewed-by: jmasa, brutisso
2013-03-19 09:38:37 -07:00
John Cuthbertson
9164834d73 8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809
Skip reference processing if the global marking stack overflows during remark. Refactor and rename set_phase(); move code that sets the concurrency level into its own routine. Do not call set_phase() from within parallel reference processing; use the concurrency level routine instead. The marking state should only set reset by CMTask[0] during the concurrent phase of the marking cycle; if an overflow occurs at any stage during the remark, the marking state will be reset after reference processing.

Reviewed-by: brutisso, jmasa
2013-03-19 00:57:39 -07:00
John Cuthbertson
d41c0fce7f 8009536: G1: Apache Lucene hang during reference processing
In CMTask::do_marking_step(), Skip offering termination and entering the first and second synchronization barriers if called from a serial context, i.e. the VM thread.

Reviewed-by: brutisso, tschatzl
2013-03-18 11:05:27 -07:00