641 Commits

Author SHA1 Message Date
Thomas Schatzl
494872e535 8133456: HeapRegionManager::shrink_by() iterates suboptimally across regions
Reviewed-by: brutisso, tbenson
2015-08-24 16:32:50 +02:00
Thomas Schatzl
472a3333a8 8067336: Allow that PLAB allocations at the end of regions are flexible
PLAB allocations may return a buffer that is between minimum size (current allocation) and the desired size. This allows removes a large amount of fragmentation at the end of regions.

Reviewed-by: tbenson, mgerdin
2015-08-24 16:27:41 +02:00
Thomas Schatzl
c91c77abd2 8067339: PLAB reallocation might result in failure to allocate object in that recently allocated PLAB
Properly size the PLAB to make sure that the object to allocate always has enough space in it.

Reviewed-by: mgerdin, brutisso
2015-08-20 15:17:43 +02:00
Thomas Schatzl
041c76d48b 8073146: G1 merges thread local age tables too early with global age table
Move merging of age and survivor table to the end of GC.

Reviewed-by: mgerdin, david
2015-08-20 15:17:43 +02:00
Thomas Schatzl
6cca258181 8040162: Avoid reallocating PLABs between GC phases in G1
Allocate G1ParScanThreadState at the start of GC and only deallocate at the end of GC. This automatically keeps the current PLAB intact without flushing it (and loosing lots of memory) for every reallocation.

Reviewed-by: david, mgerdin
2015-08-20 15:17:43 +02:00
Thomas Schatzl
4a849fb21c 8133530: Add JFR event for evacuation statistics
Introduce two new JFR events for young/old generation allocation statistics based on previous changes.

Reviewed-by: ehelin, mgerdin
2015-08-20 15:17:41 +02:00
Thomas Schatzl
0ade675b8b 8073013: Add detailed information about PLAB memory usage
Track and provide information about direct allocation, region end waste and failure waste for G1.

Reviewed-by: jmasa, david, ehelin, mgerdin
2015-08-19 13:59:39 +02:00
Thomas Schatzl
43a6ce61de 8133470: Uses of Atomic methods in plab.hpp should be moved to .inline.hpp file
Fix include file dependencies according to general guidelines for plab.hpp

Reviewed-by: ehelin, mgerdin
2015-08-19 13:50:50 +02:00
Thomas Schatzl
8c2da662ff 8003237: G1: Reduce unnecessary (and failing) allocation attempts when handling an evacuation failure
Remember for every generation whether the memory for that generation has already been exhausted. If so, do not try to get a new region for these generations. Further, if the last generation is full, early exit from copy_to_survivor_space.

Reviewed-by: jmasa, brutisso
2015-08-19 13:47:40 +02:00
Erik Helin
9bc2e29405 8133825: Remove the class G1CollectorPolicyExt
Reviewed-by: jwilhelm, ecaspole
2015-08-20 10:27:04 +02:00
Eric Caspole
3c41a37bd8 8133349: CMS: Assert failed: Ctl pt invariant
_survivor_chunk_array should be sized based on PLAB::min_size() not ThreadLocalAllocBuffer::min_size()

Reviewed-by: tschatzl, jwilhelm
2015-08-18 14:04:24 -04:00
David Lindholm
4445cbb273 8133553: Running with -XX:+UseParallelGC -XX:OldSize=30k crashes jvm
Reviewed-by: jwilhelm, sjohanss
2015-08-17 10:43:11 +02:00
Stefan Karlsson
0e252b2a93 8087324: Use semaphores when starting and stopping GC task threads
Reviewed-by: jmasa, sjohanss
2015-06-29 11:11:12 +02:00
Stefan Karlsson
e25bcfd3d3 8087323: Unify and split the work gang classes
Reviewed-by: jmasa, sjohanss
2015-06-29 11:09:39 +02:00
Axel Siebenborn
d32b06427d 8133121: Move implementation of process_grey_object to concurrentMark.inline.hpp
Move implementation of process_grey_object to inline.hpp

Reviewed-by: kbarrett, simonis
2015-08-13 09:32:01 +02:00
David Lindholm
b206c669f7 8133193: Memory leak in G1 because G1RootProcessor doesn't have desctructor
Reviewed-by: mgerdin, tschatzl
2015-08-12 16:32:29 +02:00
Kim Barrett
a4537791a8 Merge 2015-08-08 00:27:39 +02:00
Thomas Schatzl
c6cfb3a7fd 8133042: Remove some direct accesses of G1Allocator to G1CollectedHeap members
Remove direct access to private members of G1CollectedHeap from G1Allocator and G1ArchiveAllocator. Allows removal of friend delcarations.

Reviewed-by: kbarrett, jmasa, jwilhelm
2015-08-07 15:37:07 +02:00
Eric Caspole
bcca305c14 8078904: CMS: Assert failed: Ctl pt invariant
Survivor rescan array now baed on MinTLABSize so all entries will fit

Reviewed-by: tschatzl, kbarrett
2015-08-07 09:15:42 -04:00
Thomas Schatzl
c2d0a8dbd0 8133047: Rename G1ParScanThreadState::_queue_num to _worker_id
Reviewed-by: jmasa, jwilhelm
2015-08-06 15:52:33 +02:00
Thomas Schatzl
183850cec4 8133043: Clean up code related to termination stats printing
Reformat termination stats related code to make it look more similar to existing code.

Reviewed-by: jwilhelm, jmasa
2015-08-06 15:49:52 +02:00
Thomas Schatzl
6e3ffb1aae 8073052: Rename and clean up the allocation manager hierarchy in g1Allocator.?pp
Fix naming of G1ParGCAllocator, decrease dependencies between G1CollectedHeap, G1Allocator and G1AllocRegion, additional documentation.

Reviewed-by: mgerdin, jmasa, kbarrett
2015-08-06 15:49:50 +02:00
Sangheon Kim
a13fe250b0 8130459: Add additional validation after heap creation
Some PLAB related flags' validation can happen after heap creation. Introduced additional stage of validation check.

Reviewed-by: coleenp, dholmes, kbarrett, gziemski, ecaspole, ddmitriev
2015-07-27 13:56:26 -07:00
Kim Barrett
093ee9b659 8079082: VerifyNoCSetOopsClosure is derived twice from Closure
Change closure to a function object and update iteration

Reviewed-by: mgerdin, ecaspole
2015-07-27 14:05:55 -04:00
Eric Caspole
cf7ea2f64e 8132148: G1 hs_err region dump legend out of sync with region values
Use E for Eden, S for Survivor, O for Old

Reviewed-by: tschatzl, tbenson
2015-07-24 10:32:00 -04:00
Walter Florian Gugenberger
ca0fd4b1fe 8004687: G1: Parallelize object self-forwarding and scanning during an evacuation failure
Use the regular task queue during evacuation failure and allow per-thread preserved header queues to remove the global lock during evacuation failure.

Reviewed-by: mgerdin, jmasa
2015-07-23 11:14:47 +02:00
Erik Helin
57553520be 8131319: Move G1Allocator::_summary_bytes_used back to G1CollectedHeap
G1Allocator::_summary_bytes_used fits better in G1CollectedHeap since we added the archive allocator. Move it back to the original location.

Reviewed-by: mgerdin, tbenson
2015-07-23 11:14:24 +02:00
Kim Barrett
717679c169 8130931: Refactor CardTableModRefBS[ForCTRS]
Remove friends and push CTRS-specific code down from base to derived

Reviewed-by: tschatzl, mgerdin
2015-07-22 00:37:01 -04:00
Thomas Schatzl
70eeaa4735 8131166: Remove additional whitespace in G1Allocator
Reviewed-by: jmasa, tbenson
2015-07-16 11:54:37 +02:00
Eric Caspole
34bcc977bc 8129961: SIGSEGV when copying to survivor space
Remove "include_young" parameter from GenCollectedHeap::no_allocs_since_save_marks() since all existing uses pass true to always rescan young gen.

Reviewed-by: jmasa, kbarrett
2015-07-13 11:49:23 -04:00
Erik Helin
3a37b5d81c 8142402: G1 should not redirty cards in free regions
Reviewed-by: mgerdin, tschatzl
2015-04-29 13:17:46 +02:00
Erik Helin
62bdcb0abf 8144145: G1GCPhaseTimes should allow externally accounted time
Reviewed-by: ehelin, tschatzl
2015-11-29 10:00:31 +01:00
Erik Helin
66f8f80768 8144077: Add getter for G1CollectorPolicy::_collectionSetChooser
Reviewed-by: mgerdin, tschatzl
2015-11-29 10:00:23 +01:00
Jon Masamitsu
48ed80d136 7012980: PSOldGen is increased if there is no space in Metaspace
Reviewed-by: tschatzl, tbenson
2015-04-15 11:30:36 -07:00
Jon Masamitsu
bd52f0a2ef Merge 2015-07-07 18:16:06 +00:00
Sangheon Kim
3e36930486 8079555: REDO - Determining the desired PLAB size adjusts to the the number of threads at the wrong place
Calculate the desired PLAB value for a single thread and then return desired PLAB size according to the current number of threads when needed

Reviewed-by: jmasa, tschatzl
2015-07-07 06:37:10 -07:00
Thomas Schatzl
c8c4924aa3 8129558: Coalesce dead objects during removal of self-forwarded pointers
To improve performance of self-forwarding fixup during evacuation failure, coalesce the work done for dead objects.

Reviewed-by: mgerdin, tbenson, tonyp
2015-07-07 14:20:08 +02:00
Stefan Johansson
c85e4ae56f 8078901: Add trace event for G1 MMU information
Reviewed-by: ehelin, mlarsson
2015-04-30 13:33:23 +02:00
Poonam Bajaj
b34dec66c6 Merge 2015-06-25 18:14:54 +00:00
Thomas Schatzl
e5a5f9beab Merge 2015-06-25 15:43:16 +00:00
Poonam Bajaj
c7612a1138 8129108: nmethod related crash in CMS
Add SO_AllCodeCache to root scanning options when not unloading classes with a CMS collection cycle

Reviewed-by: mgerdin, jwilhelm
2015-06-25 06:52:05 -07:00
Bengt Rutisson
e7a2bfa767 Merge 2015-06-25 10:52:37 +00:00
Thomas Schatzl
2431e87477 8129573: CollectedHeap::fill_with_objects() needs to use multiple arrays in 32 bit mode too
In JDK-8042668 we introduced a custom fill threshold for G1. This leads to CollectedHeap::fill_with_objects create too large objects in G1 when using it in 32 bit mode, as the code to create multiple filler objects is IFDEF'ed out on 32 bit. Enable this code on 32 bit too.

Reviewed-by: tonyp, mgerdin, tbenson
2015-06-25 09:06:35 +02:00
Bengt Rutisson
5f4a67087f 8129626: G1: set_in_progress() and clear_started() needs a barrier on non-TSO platforms
Also reviewed by vitalyd@gmail.com

Reviewed-by: pliden, bpittore, bdelsart
2015-06-25 08:15:07 +02:00
Bill Pittore
304b59b0c8 8081202: Hotspot compile warning: "Invalid suffix on literal; C++11 requires a space between literal and identifier"
Need to add a space between macro identifier and string literal

Reviewed-by: stefank, dholmes, kbarrett
2015-06-24 12:12:25 -04:00
Bengt Rutisson
7f2ffe8c0e 8129549: G1: Make sure the concurrent thread does not mix its logging with the STW pauses
Reviewed-by: pliden, tschatzl
2015-06-23 13:26:05 +02:00
Coleen Phillimore
97f69e8b42 Merge 2015-06-19 13:03:58 +00:00
Thomas Schatzl
5084eb24d0 8078669: G1 applies SurvivorAlignmentInBytes to both survivor and old gen
After refactoring of the relevant code in JDK-8060025 the survivor alignment had been applied to any allocation within PLABs. Only do that for survivor allocations again. Improve the related tests to have less variance.

Reviewed-by: jmasa, fzhinkin
2015-06-19 11:27:07 +02:00
Gerard Ziemski
ed2bb8c9fc 8122937: [JEP 245] Validate JVM Command-Line Flag Arguments
Validate the arguments to all JVM command-line flags so as to avoid crashes, and ensure that appropriate error messages are displayed when they are invalid.

Reviewed-by: ddmitriev, dholmes, kbarrett, drwhite, brutisso, coleenp
2015-06-18 14:39:38 -05:00
David Lindholm
295a084cc5 7169803: Usage of pretenured value is not correct
Reviewed-by: tamao, jmasa
2015-06-17 17:29:56 +02:00