259 Commits

Author SHA1 Message Date
Jesper Wilhelmsson
5301534dc3 8028391: Make the Min/MaxHeapFreeRatio flags manageable
Made the flags Min- and MaxHeapFreeRatio manageable, and implemented support for these flags in ParallalGC.

Reviewed-by: sla, mgerdin, brutisso
2014-01-29 23:17:05 +01:00
Bengt Rutisson
9b29efeb63 8030177: G1: Enable TLAB resizing
Reviewed-by: tschatzl, stefank, jmasa
2014-01-27 13:14:53 +01:00
Mikael Gerdin
4c7c3f0613 8032379: Remove the is_scavenging flag to process_strong_roots
Refactor the strong root processing to avoid using a boolean in addition to the ScanOption enum.

Reviewed-by: stefank, tschatzl, ehelin, jmasa
2014-01-14 16:40:33 +01:00
Thomas Schatzl
70fd1802a0 8027746: Remove do_gen_barrier template parameter in G1ParCopyClosure
Remove the above mentioned template parameter and related unused code. Also remove some classes that are never used.

Reviewed-by: stefank, mgerdin, jwilhelm
2014-01-20 11:47:53 +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
Bengt Rutisson
810bc0c558 8029524: Remove unsused method CollectedHeap::unsafe_max_alloc()
Reviewed-by: pliden, jmasa
2013-12-16 08:54:14 +01:00
Markus Grönlund
b1e3461fe5 8028128: Add a type safe alternative for working with counter based data
Reviewed-by: dholmes, egahlin
2013-11-23 12:25:13 +01:00
Thomas Schatzl
6f46da6198 8027756: assert(!hr->isHumongous()) failed: code root in humongous region?
Change checks for isHumongous() to continuesHumongous() as installing a code root for a humongous object is valid, but not for continuations of humongous objects. Cleaned up asserts.

Reviewed-by: jmasa, tamao
2013-11-07 15:17:10 +01:00
Jesper Wilhelmsson
0fa3a71c8a 8016309: assert(eden_size > 0 && survivor_size > 0) failed: just checking
7057939: jmap shows MaxNewSize=4GB when Java is using parallel collector

Major cleanup of the collectorpolicy classes

Reviewed-by: tschatzl, jcoomes
2013-11-01 17:09:38 +01:00
John Coomes
e61cbf8d69 Merge 2013-10-11 08:27:21 -07:00
Mikael Gerdin
7f3b537807 8014555: G1: Memory ordering problem with Conc refinement and card marking
Add a StoreLoad barrier in the G1 post-barrier to fix a race with concurrent refinement. Also-reviewed-by: martin.doerr@sap.com

Reviewed-by: iveresov, tschatzl, brutisso, roland, kvn
2013-10-08 17:35:51 +02:00
John Coomes
875078a4e0 Merge 2013-10-04 13:37:25 -07:00
Bengt Rutisson
ac3d344514 8025605: G1: Heap expansion logging misleading for fully expanded heap
Reviewed-by: tschatzl, jwilhelm, jmasa
2013-10-01 07:52:52 +02:00
Zhengyu Gu
bfafab7b47 Merge 2013-09-27 10:08:56 -04: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
ab5637182c 7163191: G1: introduce a "heap spanning table" abstraction
Add G1BiasedArray<T> that is an array where each element represents a fixed-sized subdivision of the heap. Use this abstraction to refactor the HeapRegionSeq class.

Reviewed-by: brutisso
2013-09-25 13:25:24 +02:00
Mikael Gerdin
b8363e6615 8025305: Cleanup CardTableModRefBS usage in G1
Move some G1 specific code from CardTableModRefBS to G1SATBCardTableModRefBS.

Reviewed-by: brutisso, tschatzl, ehelin
2013-09-24 14:46:29 +02:00
Thomas Schatzl
bd9ffce267 8014078: G1: improve remembered set summary information by providing per region type information
Add memory consumption breakdown on a per region type in the G1 remembered set summary statistics. This simplifies remembered set memory consumption analysis.

Reviewed-by: brutisso
2013-09-26 12:49:45 +02:00
Thomas Schatzl
962008f22b 8010722: assert: failed: heap size is too big for compressed oops
Use conservative assumptions of required alignment for the various garbage collector components into account when determining the maximum heap size that supports compressed oops. Using this conservative value avoids several circular dependencies in the calculation.

Reviewed-by: stefank, dholmes
2013-09-11 16:25:02 +02:00
Erik Helin
27e891247e 8020692: TestGCEventMixed.java failed because of timestamp in event after end event
Reviewed-by: mgerdin, stefank
2013-08-22 11:23:15 +02:00
Jon Masamitsu
ce2d714a66 Merge 2013-08-27 18:55:33 -07:00
Bengt Rutisson
4c3c3b6caa 8022872: G1: Use correct GC cause for young GC triggered by humongous allocations
Reviewed-by: tonyp, tschatzl
2013-08-21 22:35:56 +02:00
Stefan Karlsson
7ade7987a0 8007074: SIGSEGV at ParMarkBitMap::verify_clear()
Replace the broken large pages implementation on Linux. New flag: -XX:+UseTransparentHugePages - Linux specific flag to turn on transparent huge page hinting with madvise(..., MAP_HUGETLB). Changed behavior: -XX:+UseLargePages - tries to use -XX:+UseTransparentHugePages before trying other large pages implementations (on Linux). Changed behavior: -XX:+UseHugeTLBFS - Use upfront allocation of Large Pages instead of using the broken implementation to dynamically committing large pages. Changed behavior: -XX:LargePageSizeInBytes - Turned off the ability to use this flag on Linux and provides warning to user if set to a value different than the OS chosen large page size. Changed behavior: Setting no large page size - Now defaults to use -XX:UseTransparentHugePages if the OS supports it. Previously, -XX:+UseHugeTLBFS was chosen if the OS was configured to use large pages.

Reviewed-by: tschatzl, dcubed, brutisso
2013-08-16 13:22:32 +02:00
Bengt Rutisson
5e41090120 8023145: G1: G1CollectedHeap::mark_strong_code_roots() needs to handle ParallelGCThreads=0
Reviewed-by: stefank, mgerdin
2013-08-16 11:26:09 +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
Jiangli Zhou
b454ece6d7 7133260: AllocationProfiler uses space in metadata and doesn't seem to do anything useful
Remove -Xaprof and Klass::_alloc_count & ArrayKlass::_alloc_size.

Reviewed-by: stefank, coleenp
2013-07-03 17:26:59 -04: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
John Cuthbertson
c3d6abc4e1 8015244: G1: Verification after a full GC is incorrectly placed
In a full GC, move the verification after the GC to after RSet rebuilding. Verify RSet entries during a full GC under control of a flag.

Reviewed-by: tschatzl, brutisso
2013-06-04 10:04:06 -07:00
Thomas Schatzl
54964edefa 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
Fixed the output of G1SummarizeRSetStats: too small datatype for the number of concurrently processed cards, added concurrent remembered set thread time retrieval for Linux and Windows (BSD uses os::elapsedTime() now), and other cleanup. The information presented during VM operation is now relative to the previous output, not always cumulative if G1SummarizeRSetStatsPeriod > 0. At VM exit, the code prints a cumulative summary.

Reviewed-by: johnc, jwilhelm
2013-05-28 09:32:06 +02:00
Erik Helin
0f9e2457c5 8014277: Remove ObjectClosure as base class for BoolObjectClosure
Reviewed-by: brutisso, tschatzl
2013-05-17 11:57:05 +02:00
John Cuthbertson
5838d847a1 8010738: G1: Output for full GCs with +PrintGCDetails should contain perm gen size/meta data change info
Include metaspace information (used, allocated, reserved) in the PrintGCDetails output for full GCs.

Reviewed-by: poonam, jmasa, brutisso
2013-05-16 09:24:26 -07:00
John Cuthbertson
c38f8fc543 7176479: G1: JVM crashes on T5-8 system with 1.5 TB heap
Refactor G1's hot card cache and card counts table into their own files. Simplify the card counts table, including removing the encoding of the card index in each entry. The card counts table now has a 1:1 correspondence with the cards spanned by heap. Space for the card counts table is reserved from virtual memory (rather than C heap) during JVM startup and is committed/expanded when the heap is expanded. Changes were also reviewed-by Vitaly Davidovich.

Reviewed-by: tschatzl, jmasa
2013-05-09 11:16:39 -07:00
Bengt Rutisson
a8ad116e49 8013872: G1: HeapRegionSeq::shrink_by() has invalid assert
Refactored shrink_by() to only use region counts and not byte sizes

Reviewed-by: johnc, tschatzl
2013-05-06 21:30:34 +02:00
Mikael Gerdin
67b238b12d Merge 2013-05-02 19:28:59 +02:00
Calvin Cheung
0f7adcc3d9 8011661: Insufficient memory message says "malloc" when sometimes it should say "mmap"
Reviewed-by: coleenp, zgu, hseigel
2013-04-30 11:56:52 -07: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
John Cuthbertson
9fba6da283 Merge 2013-04-11 10:20:00 -07:00
John Cuthbertson
fa3b993423 8010780: G1: Eden occupancy/capacity output wrong after a full GC
Move the calculation and recording of eden capacity to the start of a GC and print a detailed heap transition for full GCs.

Reviewed-by: tschatzl, jmasa
2013-04-10 10:57:34 -07: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
Jon Masamitsu
d72b516201 8008966: NPG: Inefficient Metaspace counter functions cause large young GC regressions
Reviewed-by: mgerdin, coleenp
2013-02-12 14:15:45 -08:00
John Cuthbertson
eafc00bc25 8011724: G1: Stack allocate instances of HeapRegionRemSetIterator
Stack allocate instances of HeapRegionRemSetIterator during RSet scanning.

Reviewed-by: brutisso, jwilhelm
2013-04-18 10:09:23 -07:00
Stefan Karlsson
bdf829cf3e 8012687: Remove unused is_root checks and closures
Reviewed-by: tschatzl, jmasa
2013-04-22 20:27:36 +02:00
John Cuthbertson
9c89e6d28a 8010463: G1: Crashes with -UseTLAB and heap verification
Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.

Reviewed-by: brutisso, tschatzl
2013-03-29 13:49:37 -07:00
Mikael Gerdin
89120e7827 7014552: gc/lock/jni/jnilockXXX works too slow on 1-processor machine
Keep a counter of how many times we were stalled by the GC locker, add a diagnostic flag which sets the limit.

Reviewed-by: brutisso, ehelin, johnc
2013-03-28 10:27:28 +01:00
Bengt Rutisson
77ebf3cbc1 8002144: G1: large number of evacuation failures may lead to large c heap memory usage
Use Stack<> instead of GrowableArray to keep track of preserved marks. Also reviewed by vitalyd@gmail.com.

Reviewed-by: johnc, jcoomes
2013-02-10 21:15:16 +01:00
Jon Masamitsu
7fb60025ee 8005672: Clean up some changes to GC logging with GCCause's
Reviewed-by: johnc, ysr
2013-01-04 17:04:46 -08:00
John Cuthbertson
aac13806ea 8000244: G1: Ergonomically set MarkStackSize and use virtual space for global marking stack
Set the value of MarkStackSize to a value based on the number of parallel marking threads with a reasonable minimum. Expand the marking stack if we have to restart marking due to an overflow up to a reasonable maximum. Allocate the underlying space for the marking stack from virtual memory.

Reviewed-by: jmasa, brutisso
2012-10-01 09:28:13 -07:00
John Cuthbertson
4e43b88153 8004170: G1: Verbose GC output is not getting flushed to log file using JDK 8
Add flushes to G1CollectedHeap::log_gc_footer() and TraceCPUTime destructor.

Reviewed-by: jwilhelm, azeemj, brutisso
2012-11-30 11:46:17 -08:00
Mikael Gerdin
845106af13 8000358: G1: metaspace information not printed in PrintHeapAtGC output nor in hs_err file
Missing call to MetaspaceAux::print_on() in G1CollectedHeap::print_on().

Reviewed-by: azeemj, jmasa
2012-10-08 09:12:31 -07:00
John Cuthbertson
ed98ea0a88 8000311: G1: ParallelGCThreads==0 broken
Divide by zero error, if ParallelGCThreads is 0, when adjusting the PLAB size.

Reviewed-by: jmasa, jcoomes
2012-10-04 10:04:13 -07:00