Commit graph

129 commits

Author SHA1 Message Date
Johannes Scheerer
508b9a0a1f 8068739: G1CollectoryPolicy uses uninitialized field '_sigma' in the constructor
Change initialization order in constructor. Remove suppression for suppression of "'this': used in base member initializer list" warning.

Reviewed-by: mgerdin, tschatzl, simonis
2015-01-13 11:04:53 +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
1da0a96993 8065305: Make it possible to extend the G1CollectorPolicy
Added a G1CollectorPolicyExt where it is possible to extend the class.

Reviewed-by: sjohanss, tschatzl
2014-11-25 13:41:08 +01:00
Marcus Larsson
fe45f7091b 8054491: Remove wrong assert and refactor code in G1CollectorPolicy::record_concurrent_mark_end
Reviewed-by: tschatzl, brutisso
2014-11-03 11:29:00 +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
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
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
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
1ad5cdb4a4 8049051: Use of during_initial_mark_pause() in G1CollectorPolicy::record_collection_pause_end() prevents use of seperate object copy time prediction during marking
Replaced use of during_initial_mark_pause() with the variable last_pause_included_initial_mark that holds the real old value of _during_initial_mark_pause.

Reviewed-by: brutisso, ehelin
2014-07-21 09:59:37 +02:00
Jesper Wilhelmsson
ded8b863dd 8042298: Remove the names gen0 and gen1 from the GC code
Renamed gen0 and gen1 to young and old throughout the GC code.

Reviewed-by: sjohanss, jcoomes
2014-05-02 02:11:34 +02: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
Erik Helin
977d1f7a5d 8038934: Remove prefix allocated_ from methods and variables in Metaspace
Reviewed-by: jmasa, coleenp
2014-03-31 17:09:38 +02: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
Erik Helin
ba54cfdf88 8031776: Remove the unnecessary enum GenRemSet::Name
Reviewed-by: stefank, tschatzl, jwilhelm
2014-01-20 17:15:55 +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
Jesper Wilhelmsson
1123a5596c 8026851: Remove unnecessary code in GenRemSet
Removed the GenRemSet::rem_set_name() since we only have one remset.

Reviewed-by: stefank, mgerdin, tschatzl
2013-10-21 18:51:37 +02:00
Jesper Wilhelmsson
588c91b042 8023643: G1 assert failed when NewSize was specified greater than MaxNewSize
Exit with an error if incompatible NewSize and MaxNeSize are set

Reviewed-by: brutisso, tschatzl
2013-10-12 00:49:19 +02:00
Jesper Wilhelmsson
582aa55e4d 8025852: Remove unnecessary setters in collector policy classes
Use instance variables directly within the collector policy classes and remove unused setters.

Reviewed-by: tschatzl, jcoomes
2013-10-03 21:36:29 +02:00
Bengt Rutisson
6d7626dba4 8019902: G1: Use the average heap size rather than the minimum heap size to calculate the region size
Reviewed-by: tonyp, tschatzl, sjohanss
2013-08-30 07:31:47 +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
0f82640543 8020155: PSR:PERF G1 not collecting old regions when humongous allocations interfer
Take _last_young_gc into account when deciding on starting a concurrent mark. Also reviewed-by: per.liden@oracle.com.

Reviewed-by: tschatzl, johnc
2013-07-11 11:33:27 +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
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
Bengt Rutisson
36c195270d 8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment
Make sure max alignemnt is at least as large as min alignment

Reviewed-by: johnc, jmasa, tschatzl
2013-05-06 09:16:14 +02:00
Mikael Gerdin
bd3eb2abf6 Merge 2013-04-16 12:46:24 +02: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
Mikael Vidstedt
eeb83733a6 8003310: Enable -Wunused-function when compiling with gcc
Add the -Wunused-function flag and remove a number of unused functions.

Reviewed-by: dholmes, coleenp, kvn
2013-04-04 10:01:26 -07:00
John Cuthbertson
a3a42c48e8 8007036: G1: Too many old regions added to last mixed GC
Stop adding old regions to collection set when the remaining reclaimable bytes reaches, or goes below, G1HeapWastePercent. Changes were also reviewed by Vitaly Davidovich <vitalyd@gmail.com>.

Reviewed-by: brutisso
2013-03-04 12:42:14 -08:00
Vladimir Kempik
050d7c9d90 8008546: Wrong G1ConfidencePercent results in GUARANTEE(VARIANCE() > -1.0) FAILED
Reviewed-by: brutisso, johnc
2013-02-21 23:58:05 -08:00
John Cuthbertson
2df5f7cc5a 8001424: G1: Rename certain G1-specific flags
Rename G1DefaultMinNewGenPercent, G1DefaultMaxNewGenPercent, and G1OldCSetRegionLiveThresholdPercent to G1NewSizePercent, G1MaxNewSizePercent, and G1MixedGCLiveThresholdPercent respectively. The previous names are no longer accepted.

Reviewed-by: brutisso, ysr
2012-12-21 11:45:34 -08: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
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
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
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
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
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
Antonios Printezis
29afa9bf4b 7127697: G1: remove dead code after recent concurrent mark changes
Removed lots of dead code after some recent conc mark changes.

Reviewed-by: brutisso, johnc
2012-04-05 13:57:23 -04:00
John Cuthbertson
79c90a15fa 7143511: G1: Another instance of high GC Worker Other time (50ms)
Tiered compilation has increased the number of nmethods in the code cache. This has, in turn, significantly increased the number of marked nmethods processed during the StrongRootsScope destructor. Create a specialized version of CodeBlobToOopClosure for G1 which places only those nmethods that contain pointers into the collection set on to the marked nmethods list.

Reviewed-by: iveresov, tonyp
2012-03-13 11:05:32 -07:00
Antonios Printezis
450d6e8d9a 7146246: G1: expose some of the -XX flags that drive which old regions to collect during mixed GCs
Make two G1 cmd line flags available in product builds: G1HeapWastePercent (previously called: G1OldReclaimableThresholdPercent) and G1MixedGCCountTarget (previous called: G1MaxMixedGCNum). Also changed the default of the former from 1% to 5% and the default for G1OldCSetRegionLiveThresholdPercent to 90%.

Reviewed-by: azeemj, jwilhelm, johnc
2012-03-23 10:53:19 -04:00
Antonios Printezis
be06406cb8 7132029: G1: mixed GC phase lasts for longer than it should
Revamp of the mechanism that chooses old regions for inclusion in the CSet. It simplifies the code and introduces min and max bounds on the number of old regions added to the CSet at each mixed GC to avoid pathological cases. It also ensures that when we do a mixed GC we'll always find old regions to add to the CSet (i.e., it eliminates the case where a mixed GC will collect no old regions which can happen today).

Reviewed-by: johnc, brutisso
2012-02-15 13:06:53 -05:00
Antonios Printezis
802519ea53 7127706: G1: re-enable survivors during the initial-mark pause
Re-enable survivors during the initial-mark pause. Afterwards, the concurrent marking threads have to scan them and mark everything reachable from them. The next GC will have to wait for the survivors to be scanned.

Reviewed-by: brutisso, johnc
2012-01-25 12:58:23 -05:00
Bengt Rutisson
4e395f3ddd 7132311: G1: assert((s == klass->oop_size(this)) || (Universe::heap()->is_gc_active() && ((is_typeArray()..
Move the check for when to call collect() to before we do a humongous object allocation

Reviewed-by: stefank, tonyp
2012-01-23 20:36:16 +01:00
Bengt Rutisson
c11ba93098 6976060: G1: humongous object allocations should initiate marking cycles when necessary
Reviewed-by: tonyp, johnc
2012-01-16 22:10:05 +01:00
Antonios Printezis
1d3b26e52b 6888336: G1: avoid explicitly marking and pushing objects in survivor spaces
This change simplifies the interaction between GC and concurrent marking. By disabling survivor spaces during the initial-mark pause we don't need to propagate marks of objects we copy during each GC (since we never need to copy an explicitly marked object).

Reviewed-by: johnc, brutisso
2012-01-10 18:58:13 -05:00