230 Commits

Author SHA1 Message Date
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
Dmitry Samersoff
47a8760b93 Merge 2012-09-27 20:22:57 +04:00
John Cuthbertson
e78edc79b7 7193946: Move warnings associated with UseMemSetInBOT flag
The warnings associated with the UseMemSetInBOT flag are duplicated in CMS and G1. The separate warnings have been removed and single instance of the warning has been placed in a common location.

Reviewed-by: brutisso, ysr
2012-09-19 15:48:02 -07:00
Brandon Mitchell
6573cbf346 7016955: G1: remove the is_zeroed parameter from the HeapRegion constructor
The is_zeroed parameter is no longer used and so can be removed.

Reviewed-by: johnc, jmasa, brutisso
2012-09-19 08:48:10 -07:00
Dmytro Sheyko
48255b9ff3 7194254: jstack reports wrong thread priorities
Reviewed-by: dholmes, sla, fparain
2012-09-17 07:36:31 -04:00
Bengt Rutisson
a08d48f9b1 7198130: G1: PrintReferenceGC output comes out of order
Move the first part of the GC logging, including timestamp, to the start of the GC

Reviewed-by: johnc, jwilhelm
2012-09-17 10:33:13 +02:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
John Cuthbertson
eb2c52c717 7041879: G1: introduce stress testing parameter to cause frequent evacuation failures
Add the flags G1EvacuationFailureALot flag (and supporting flags) to force trigger evacuation failures. The support flags control how often to trigger an evacuation failure and during which types of evacuation pause. This functionality is analogous to that of PromotionFailureALot for the other collectors.

Reviewed-by: brutisso
2012-08-28 15:20:08 -07:00
Bengt Rutisson
68bbfe24e7 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
Also reviewed by vitalyd@gmail.com. Introduced the WorkerDataArray class. Fixed some minor logging bugs.

Reviewed-by: johnc, mgerdin
2012-08-23 10:21:12 +02:00
John Cuthbertson
61493cd92e 7185699: G1: Prediction model discrepancies
Correct the result value of G1CollectedHeap::pending_card_num(). Change the code that calculates the GC efficiency of a non-young heap region to use historical data from mixed GCs and the actual number of live bytes when predicting how long it would take to collect the region. Changes were also reviewed by Thomas Schatzl.

Reviewed-by: azeemj, brutisso
2012-08-21 14:10:39 -07:00
John Cuthbertson
384650cb3e 7192128: G1: Extend fix for 6948537 to G1's BOT
G1 does not appear to be immune to the issue described in CR 6948537 and increasing the size of old-generation PLABs appears to increase the liklihood of seeing the issue. Extend the fix for 6948537 to G1's BlockOffsetTable.

Reviewed-by: brutisso, jmasa
2012-08-21 10:05:57 -07:00
Brandon Mitchell
3234f913bb 6818524: G1: use ergonomic resizing of PLABs
Employ PLABStats instances to record information about survivor and old PLABs, and use the recorded stats to adjust the sizes of survivor and old PLABS.

Reviewed-by: johnc, ysr
2012-08-06 12:20:14 -07:00
Antonios Printezis
a6580a7e63 7114678: G1: various small fixes, code cleanup, and refactoring
Various cleanups as a prelude to introducing iterators for HeapRegions.

Reviewed-by: johnc, brutisso
2012-07-19 15:15:54 -07:00
Jon Masamitsu
00502cdd51 Merge 2012-07-16 13:00:26 -07:00
Bengt Rutisson
3571ee23dc 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
Also reviewed by: vitalyd@gmail.com. Move the timing out of G1CollectorPolicy into the G1GCPhaseTimes class

Reviewed-by: johnc
2012-07-11 22:47:38 +02:00
Coleen Phillimore
135f315eaa Merge 2012-07-02 13:11:28 -04:00
Zhengyu Gu
a39b17624a 6995781: Native Memory Tracking (Phase 1)
7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
Thomas Schatzl
79ee0ab0c2 6921087: G1: remove per-GC-thread expansion tables from the fine-grain remembered sets
Remove the per-thread expansion tables (PosParPRT) and associated expansion and compaction from the fine grain RSet entries. This code has been unused for a while.

Reviewed-by: johnc, brutisso
2012-06-25 16:00:55 -07:00
Bengt Rutisson
ee7ac30420 7173460: G1: java/lang/management/MemoryMXBean/CollectionUsageThreshold.java failes with G1
The scope of TraceMemoryManagerStats in G1CollectedHeap need to cover the call to G1MonitoringSupport::update_sizes()

Reviewed-by: johnc, jmasa
2012-06-04 13:29:34 +02:00
Bengt Rutisson
e294a9f5ec 7172388: G1: _total_full_collections should not be incremented for concurrent cycles
Reviewed-by: azeemj, jmasa
2012-06-05 22:30:24 +02:00
Bengt Rutisson
212ab5c73a 7172279: G1: Clean up TraceGen0Time and TraceGen1Time data gathering
Simplify code, remove unused code, remove ExitAfterGCNum

Reviewed-by: huntch, johnc
2012-05-31 21:10:33 +02:00
John Cuthbertson
3f38785a0a 7143858: G1: Back to back young GCs with the second GC having a minimally sized eden
Before the last thread to leave a JNI critical region was able to schedule a GCLocker Initiated GC, another thread was attempting an allocation and saw that the GCLocker region was no longer active and successfully scheduled a GC. Stall allocating threads until the GCLocker Initiated GC is performed and then retry the allocation.

Reviewed-by: brutisso, huntch
2012-05-29 10:18:02 -07:00
Bengt Rutisson
eba9965d54 7166894: Add gc cause to GC logging for all collectors
Reviewed-by: mgerdin, johnc
2012-05-15 10:25:06 +02:00
Bengt Rutisson
b68794be17 7161545: G1: Minor cleanups to the G1 logging
Rename "to-space-overflow" to "to-space-exhausted", Introduce one decimal point in the size format, Add Sum to the aggregate and re-order the entries, Add number of GC workers to the log output

Reviewed-by: johnc, jwilhelm
2012-05-14 17:32:17 +02:00
Bengt Rutisson
93bfefecfe 7163848: G1: Log GC Cause for a GC
Reviewed-by: johnc, jwilhelm, jmasa
2012-04-25 12:36:37 +02:00
John Cuthbertson
377a04fe57 7143490: G1: Remove HeapRegion::_top_at_conc_mark_count
Removed the HeapRegion::_top_at_conc_mark_count field. It is no longer needed as a result of the changes for 6888336 and 7127706. Refactored the closures that finalize and verify the liveness counting data so that common functionality was placed into a base class.

Reviewed-by: brutisso, tonyp
2012-04-25 10:23:12 -07:00
Antonios Printezis
0afaaf8d36 7145441: G1: collection set chooser-related cleanup
Cleanup of the CSet chooser class: standardize on uints for region num and indexes (instead of int, jint, etc.), make the method / field naming style more consistent, remove a lot of dead code.

Reviewed-by: johnc, brutisso
2012-04-18 13:39:55 -04:00
Antonios Printezis
01ea4199c7 7157073: G1: type change size_t -> uint for region counts / indexes
Change the type of fields / variables / etc. that represent region counts and indeces from size_t to uint.

Reviewed-by: iveresov, brutisso, jmasa, jwilhelm
2012-04-18 07:21:15 -04:00
Bengt Rutisson
f695b75d78 4988100: oop_verify_old_oop appears to be dead
Removed oop_verify_old_oop and allow_dirty. Also reviewed by: alexlamsl@gmail.com

Reviewed-by: jmasa, jwilhelm
2012-04-16 08:57:18 +02:00
Bengt Rutisson
bb59715dae 7160728: Introduce an extra logging level for G1 logging
Added log levels "fine", "finer" and "finest". Let PrintGC map to "fine" and PrintGCDetails map to "finer". Separated out the per worker information in the G1 logging to the "finest" level.

Reviewed-by: stefank, jwilhelm, tonyp, johnc
2012-04-13 01:59:38 +02:00