Commit graph

70 commits

Author SHA1 Message Date
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
Jesper Wilhelmsson
2c17d50a8b 8006432: Ratio flags should be unsigned
Flags changed to be of uintx type

Reviewed-by: johnc, tamao
2013-02-07 15:51:25 +01:00
John Cuthbertson
b3b1b412b1 8001425: G1: Change the default values for certain G1 specific flags
Changes to default and ergonomic flag values recommended by performance team. Changes were also reviewed by Monica Beckwith <monica.beckwith@oracle.com>.

Reviewed-by: brutisso, huntch
2013-01-15 12:32:26 -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
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
6dbe18d702 7193157: G1: Make some develpflags available in product builds
Also reviewed by: vitalyd@gmail.com. Make G1DefaultMinNewGenPercent, G1DefaultMaxNewGenPercent, G1OldCSetRegionLiveThresholdPercent and G1OldCSetRegionThresholdPercent experimental flags

Reviewed-by: ysr, johnc, jmasa
2012-08-23 05:25:59 +02: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
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
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
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
Bengt Rutisson
2bf3afe882 7128532: G1: Change default value of G1DefaultMaxNewGenPercent to 80
Reviewed-by: tonyp, jmasa
2012-01-10 20:02:41 +01:00
Bengt Rutisson
056282a67b 7113021: G1: automatically enable young gen size auto-tuning when -Xms==-Xmx
Use a percentage of -Xms as min and another percentage of -Xmx as max for the young gen size

Reviewed-by: tonyp, johnc
2011-12-21 22:13:31 +01:00
Antonios Printezis
3cd36270b7 7097002: G1: remove a lot of unused / redundant code from the G1CollectorPolicy class
Major cleanup of the G1CollectorPolicy class. It removes a lot of unused fields and methods and also consolidates replicated information (mainly various ways of counting the number of CSet regions) into one copy.

Reviewed-by: johnc, brutisso
2011-11-18 12:52:27 -05:00
Bengt Rutisson
cfe349b1e0 7005808: G1: re-enable ReduceInitialCardMarks for G1
Remove the extra guard to allow G1 to use ReduceInitialCardMarks

Reviewed-by: jmasa, tonyp, johnc, ysr
2011-09-28 08:21:30 +02:00
Antonios Printezis
1a9d9b84f8 7087717: G1: make the G1PrintRegionLivenessInfo parameter diagnostic
Reviewed-by: brutisso, ysr
2011-09-09 05:20:58 -04:00
Antonios Printezis
d96de580b6 7084509: G1: fix inconsistencies and mistakes in the young list target length calculations
Fixed inconsistencies and mistakes in the young list target length calculations so that a) the calculated target length is optimal (before, it was not), b) other parameters like max survivor size and max gc locker eden expansion are always consistent with the calculated target length (before, they were not always), and c) the resulting target length was always bound by desired min and max values (before, it was not).

Reviewed-by: brutisso, johnc
2011-09-08 05:16:49 -04:00
John Cuthbertson
6c8c4fb321 7066841: remove MacroAssembler::br_on_reg_cond() on sparc
Remove the macro assembler routine br_on_reg_cond() and replace the remaining calls to that routine with an equivalent.

Reviewed-by: kvn, iveresov
2011-08-31 10:16:02 -07:00
Antonios Printezis
2cbacf440a 7081064: G1: remove develop params G1FixedSurvivorSpaceSize, G1FixedTenuringThreshold, and G1FixedEdenSize
Remove three develop parameters we don't use.

Reviewed-by: brutisso, jwilhelm
2011-08-22 10:16:33 -04:00
Bengt Rutisson
6fdb1414fa 6814390: G1: remove the concept of non-generational G1
Removed the possibility to turn off generational mode for G1.

Reviewed-by: johnc, ysr, tonyp
2011-08-19 09:30:59 +02:00
Antonios Printezis
8c04c76193 7034139: G1: assert(Thread::current()->is_ConcurrentGC_thread()) failed: only a conc GC thread can call this
We were calling STS join and leave during a STW pause and we are not suppoesed to. I now only call those during  concurrent phase. I also added stress code in the non-product builds to force an overflows (the condition that ws uncovering the bug) to make sure it does not happen again.

Reviewed-by: johnc, brutisso
2011-04-29 12:40:49 -04:00
Antonios Printezis
12d1d9acc1 7011855: G1: non-product flag to artificially grow the heap
It introduces non-product cmd line parameter G1DummyRegionsPerGC which indicates how many "dummy" regions to allocate at the end of each GC. This allows the G1 heap to grow artificially and makes concurrent marking cycles more frequent irrespective of what the application that is running is doing. The dummy regions will be found totally empty during cleanup so this parameter can also be used to stress the concurrent cleanup operation.

Reviewed-by: brutisso, johnc
2011-04-19 15:46:59 -04:00
John Cuthbertson
a08e1ce906 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.

Reviewed-by: kvn, iveresov, never, tonyp, dholmes
2011-04-07 09:53:20 -07:00
John Cuthbertson
154f0709bd 7020042: G1: Partially remove fix for 6994628
Disable reference discovery and processing during concurrent marking by disabling fix for 6994628.

Reviewed-by: tonyp, ysr
2011-02-18 10:07:34 -08:00
Antonios Printezis
f418b77aa6 7027766: G1: introduce flag to dump the liveness information per region at the end of marking
Repurpose the existing flag G1PrintRegionLivenessInfo to print out the liveness distribution across the regions in the heap at the end of marking.

Reviewed-by: iveresov, jwilhelm
2011-04-04 14:23:17 -04:00
John Cuthbertson
c2275649b7 7026932: G1: No need to abort VM when card count cache expansion fails
Manage allocation/freeing of the card cache counts and epochs arrays directly so that an allocation failure while attempting to expand these arrays does not abort the JVM. Failure to expand these arrays is not fatal.

Reviewed-by: iveresov, tonyp
2011-03-28 10:58:54 -07:00
John Cuthbertson
3373070e7f 6923430: G1: assert(res != 0,"This should have worked.")
7007446: G1: expand the heap with a single step, not one region at a time

Changed G1CollectedHeap::expand() to expand the committed space by calling VirtualSpace::expand_by() once rather than for every region in the expansion amount. This allows the success or failure of the expansion to be determined before creating any heap regions. Introduced a develop flag G1ExitOnExpansionFailure (false by default) that, when true, will exit the VM if the expansion of the committed space fails. Finally G1CollectedHeap::expand() returns a status back to it's caller so that the caller knows whether to attempt the allocation.

Reviewed-by: brutisso, tonyp
2011-02-02 10:41:20 -08:00
John Cuthbertson
ecdb5848eb 6608385: G1: need to support parallel reference processing
Implement support for ParallelRefProcEnabled in the reference processing that takes place at the end of G1 concurrent marking.

Reviewed-by: tonyp, ysr
2011-01-25 10:56:22 -08:00
Antonios Printezis
8bce4a6620 6977804: G1: remove the zero-filling thread
This changeset removes the zero-filling thread from G1 and collapses the two free region lists we had before (the "free" and "unclean" lists) into one. The new free list uses the new heap region sets / lists abstractions that we'll ultimately use it to keep track of all regions in the heap. A heap region set was also introduced for the humongous regions. Finally, this change increases the concurrency between the thread that completes freeing regions (after a cleanup pause) and the rest of the system (before we'd have to wait for said thread to complete before allocating a new region). The changest also includes a lot of refactoring and code simplification.

Reviewed-by: jcoomes, johnc
2011-01-19 19:30:42 -05:00
Antonios Printezis
05b7df20dd 7011379: G1: overly long concurrent marking cycles
This changeset introduces filtering of SATB buffers at the point when they are about to be enqueued. If this filtering clears enough entries on each buffer, the buffer can then be re-used and not enqueued. This cuts down the number of SATB buffers that need to be processed by the concurrent marking threads.

Reviewed-by: johnc, ysr
2011-01-19 09:35:17 -05:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
John Cuthbertson
02bad20969 6971296: G1: simplify G1RemSet class hierarchy
Remove G1RemSet base class and StupidG1RemSet class; rename HRInto_G1RemSet to just G1RemSet.

Reviewed-by: ysr, tonyp
2010-10-12 09:36:48 -07:00
Jon Masamitsu
428d02d5d7 Merge 2010-06-10 08:27:35 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
John Cuthbertson
9936975b96 6941378: G1: change default value of G1UseFixedWindowMMUTracker to true
Rather than changing the default value of the G1UseFixedWindowMMUTracker, the flag and associated guarantee have been removed.

Reviewed-by: jcoomes, tonyp, ysr
2010-05-24 17:11:22 -07:00
John Cuthbertson
b1867e0dd5 6819061: G1: eliminate serial Other times that are proportional to the collection set length
6871109: G1: remove the concept of the scan only prefix

Removed scan only regions and associated code. The young portion of the collection set is now constructed incrementally - when a young region is retired as the current allocation region it is added to the collection set.

Reviewed-by: apetrusenko, iveresov, tonyp
2010-04-22 10:02:38 -07:00
Andrey Petrusenko
99cdb36eca 6942253: G1: replace G1ParallelGCAllocBufferSize with YoungPLABSize and OldPLABSize
Replaces the G1-specific parameter with the existing ones that are used by the other GCs (YoungPLABSize and OldPLABSize)

Reviewed-by: tonyp, johnc
2010-04-16 08:48:16 -07:00
Antonios Printezis
9545c0521e 6677708: G1: re-enable parallel RSet updating and scanning
Enable parallel RSet updating and scanning.

Reviewed-by: iveresov, jmasa
2010-04-02 12:10:08 -04:00
Antonios Printezis
972acdab81 6937160: G1: should observe GCTimeRatio
Remove the G1GCPercent parameter, that specifies the desired GC overhead percentage in G1, and observe the GCTimeRatio parameter instead.

Reviewed-by: jmasa, johnc
2010-03-30 15:36:55 -04:00
Antonios Printezis
1eb12e87a7 6928065: G1: use existing command line parameters to set the young generation size
See synopsis

Reviewed-by: johnc, jmasa
2010-02-24 14:56:20 -05:00
Jon Masamitsu
f254745228 6928081: G1: rename parameters common with CMS
Rename marking stack sizing flags to be common between G1 and CMS

Reviewed-by: ysr, tonyp
2010-02-24 07:00:33 -08:00
Antonios Printezis
77b2dfce1d 6928073: G1: use existing command line parameters for marking cycle initiation
Replace the combination of the G1SteadyStateUsed / G1SteadyStateUsedDelta parameteres to decide the marking initiation threshold and instead use InitiatingHeapOccupancyPercent.

Reviewed-by: ysr, johnc
2010-02-23 23:14:34 -05:00
Antonios Printezis
b5c83abcd4 6928059: G1: command line parameter renaming
Rename G1 parameters to make them more consistent.

Reviewed-by: jmasa, johnc
2010-02-23 23:13:23 -05:00
Igor Veresov
52b92d5593 6923991: G1: improve scalability of RSet scanning
Implemented block-based work stealing. Moved copying during the rset scanning phase to the main copying phase. Made the size of rset table depend on the region size.

Reviewed-by: apetrusenko, tonyp
2010-02-11 15:52:19 -08:00
Y. Srinivas Ramakrishna
342a620a7f 6920090: G1: Disable ReduceInitialCardMarks at least until 6920109 is fixed
G1 now answers "no" to the query can_elide_initializing_store_barrier() in the product build. A debug flag allows alternate behaviour in debug builds.

Reviewed-by: iveresov, tonyp
2010-01-26 16:52:29 -08:00
Igor Veresov
1383dc414b 6862387: tune concurrent refinement further
Reworked the concurrent refinement: threads activation, feedback-based threshold adjustment, other miscellaneous fixes.

Reviewed-by: apetrusenko, tonyp
2009-12-16 15:12:51 -08:00
Y. Srinivas Ramakrishna
b5af9f3408 6902303: G1: ScavengeALot should cause an incremental, rather than a full, collection
ScavengeALot now causes an incremental (but possibly partially young, in the G1 sense) collection. Some such collections may be abandoned on account of MMU specs. Band-aided a native leak associated with abandoned pauses, as well as an MMU tracker overflow related to frequent scavenge events in the face of a large MMU denominator interval; the latter is protected by a product flag that defaults to false.

Reviewed-by: tonyp
2009-11-19 13:43:25 -08:00
Y. Srinivas Ramakrishna
c54bb4236d 6902701: G1: protect debugging code related to 6898948 with a debug flag
Protected stats dump with a new develop flag; other than for the dump, reconciled product and non-product behaviour in face of the error.

Reviewed-by: tonyp
2009-11-19 10:19:19 -08:00
Antonios Printezis
2c2a8ae8b1 6890137: G1: revamp reachable object dump
Revamp the reachable object dump debugging facility.

Reviewed-by: jmasa, apetrusenko
2009-09-30 14:50:51 -04:00