55 Commits

Author SHA1 Message Date
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
Antonios Printezis
2684c3a431 6882730: G1: parallel heap verification messes up region dump
It tidies up the G1 heap verification a bit. In particular, when the verification is done in parallel and there is a failure, this is propagated to the top level and the heap is dumped at the end, not by every thread that encounters a failure.

Reviewed-by: johnc, jmasa
2009-10-02 16:20:42 -04:00
Antonios Printezis
99a529bb86 6885041: G1: inconsistent thread dump
When G1 is enabled, thread dumps are inconsistent as the info for some of the G1 threads is not formatted properly.

Reviewed-by: ysr, johnc
2009-10-02 16:12:07 -04:00
John R Rose
40d52710f6 Merge 2009-09-23 23:56:15 -07:00
John R Rose
e261aecad8 6863023: need non-perm oops in code cache for JSR 292
Make a special root-list for those few nmethods which might contain non-perm oops.

Reviewed-by: twisti, kvn, never, jmasa, ysr
2009-09-15 21:53:47 -07:00
John Cuthbertson
f1cbffdd3e 6819077: G1: first GC thread coming late into the GC
The first worker thread is delayed when entering the GC because it clears the card count table that is used in identifying hot cards. Replace the card count table with a dynamically sized evicting hash table that includes an epoch based counter.

Reviewed-by: iveresov, tonyp
2009-08-04 16:00:17 -07:00
John Cuthbertson
36917caf5e 6865703: G1: Parallelize hot card cache cleanup
Have the GC worker threads clear the hot card cache in parallel by having each worker thread claim a chunk of the card cache and process the cards in that chunk. The size of the chunks that each thread will claim is determined at VM initialization from the size of the card cache and the number of worker threads.

Reviewed-by: jmasa, tonyp
2009-08-03 12:59:30 -07:00
Antonios Printezis
243367ec16 6819085: G1: use larger and/or user settable region size
Instead of the region size being hard-coded, allow the user to set it.

Reviewed-by: jmasa, johnc, apetrusenko
2009-07-30 16:22:58 -04:00
Y. Srinivas Ramakrishna
c6763b5bad 4957990: Perm heap bloat in JVM
Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately.

Reviewed-by: jcoomes, jmasa, kvn, never
2009-09-02 00:04:29 -07:00
Andrey Petrusenko
2491751525 6841313: G1: dirty cards of survivor regions in parallel
Reviewed-by: tonyp, iveresov
2009-08-31 05:27:29 -07:00
Antonios Printezis
4d138cd094 6871111: G1: remove the concurrent overhead tracker
Removing the concurrent overhead tracker from G1, along with the GC overhead reporter and the G1AccountConcurrentOverhead (both of which rely on the the concurrent overhead tracker).

Reviewed-by: iveresov, johnc
2009-08-19 12:53:25 -04:00
Antonios Printezis
1d0a8b2945 6866591: G1: print update buffer processing stats more often
It adds parameter -XX:+G1SummarizeRSetStatsPeriod that causes update buffer processing information to be printed periodically. It also includes two small formatting changes.

Reviewed-by: jmasa, jcoomes, ysr
2009-07-30 14:50:58 -04:00
Antonios Printezis
5f7ed79e3c 6864886: G1: rename -XX parameters related to update buffers
Renaming a couple of update buffer-related parameters to make them more understandable and consistent.

Reviewed-by: iveresov, ysr
2009-07-29 11:01:26 -04:00
Y. Srinivas Ramakrishna
759881b511 6863216: Clean up debugging debris inadvertently pushed with 6700789
Anti-delta for debugging debris that was inadvertently pushed.

Reviewed-by: kvn, tonyp
2009-07-22 18:25:00 -07:00
Andrey Petrusenko
0e783b7554 6862661: G1: _gc_alloc_region_counts is not updated properly after 6604422
Implementation of RFE 6604422 (G1: re-use half-promoted regions) introduced incorrect _gc_alloc_region_counts updates which effectively disabled survivor spaces.

Reviewed-by: johnc, jmasa, tonyp
2009-07-22 02:46:55 -07:00
Antonios Printezis
26c66d0015 6859911: G1: assert(Heap_lock->owner() = NULL, "Should be owned on this thread's behalf")
The used() method assumes that the heap lock is held when it is called. However, when used() is called from print_on(), this is not the case.

Reviewed-by: ysr, jmasa
2009-07-15 12:22:59 -04:00
Y. Srinivas Ramakrishna
075c1335cb 6700789: G1: Enable use of compressed oops with G1 heaps
Modifications to G1 so as to allow the use of compressed oops.

Reviewed-by: apetrusenko, coleenp, jmasa, kvn, never, phh, tonyp
2009-07-14 15:40:39 -07:00
Antonios Printezis
1215bc6717 6855834: G1: minimize the output when -XX:+PrintHeapAtGC is set
Changing the behavior of -XX:+PrintHeapAtGC for G1 from printing lengthy, per-region information to instead printing a concise summary.

Reviewed-by: ysr, apetrusenko, jcoomes
2009-07-07 14:23:00 -04:00
Antonios Printezis
f741e2fceb 6850846: G1: extend G1 marking verification
Extend G1 marking verification to use either the "prev" or "next" marking information, as appropriate.

Reviewed-by: johnc, ysr
2009-06-12 16:20:16 -04:00
John Cuthbertson
70fe3ca4f5 6843694: G1: assert(index < _vs.committed_size(),"bad index"), g1BlockOffsetTable.inline.hpp:55
For heaps larger than 32Gb, the number of heap regions overflows the data type used to hold the region index in the SparsePRT structure. Changed the region indexes, card indexes, and RSet hash table buckets to ints and added some size overflow guarantees.

Reviewed-by: ysr, tonyp
2009-06-11 17:19:33 -07:00
Andrey Petrusenko
b7eda61fb6 6819065: G1: eliminate high serial card table clearing time
Reviewed-by: iveresov, tonyp
2009-05-19 04:05:31 -07:00
Igor Veresov
8c764e214c 6484957: G1: parallel concurrent refinement
6826318: G1: remove traversal-based refinement code

Removed traversal-based refinement code as it's no longer used. Made the concurrent refinement (queue-based) parallel.

Reviewed-by: tonyp
2009-05-11 16:30:56 -07:00
John Cuthbertson
55750920b4 6490395: G1: Tidy up command line flags
Change G1 flag names to be more consistent and disable some in 'product' mode.

Reviewed-by: tonyp, iveresov
2009-04-30 15:07:53 -07:00
Igor Veresov
74e0691df5 6822263: G1: JVMTI heap iteration fails
Make object_iterate() traverse the perm gen

Reviewed-by: apetrusenko, tonyp
2009-03-26 08:51:32 -07:00
Andrey Petrusenko
cf2ae8d98d 6543938: G1: remove the concept of popularity
Reviewed-by: iveresov, tonyp
2009-03-25 13:10:54 -07:00
Vladimir Kozlov
41463d1d3a Merge 2009-03-19 09:13:24 -07:00
Antonios Printezis
f8c3115e4e Merge 2009-03-18 11:37:48 -04:00
Igor Veresov
82619cc8da 6817419: G1: Enable extensive verification for humongous regions
Enabled full verification for humongous regions. Also made sure that the VerifyAfterGC works with deferred updates and G1HRRSFlushLogBuffersOnVerify.

Reviewed-by: tonyp
2009-03-16 08:01:32 -07:00
Antonios Printezis
ecdb99412d 6604422: G1: re-use half-promoted regions
6728271: G1: Cleanup G1CollectedHeap::get_gc_alloc_regions()

It allows the last half-full region to be allocated to during a GC to be reused during the next GC.

Reviewed-by: apetrusenko, jcoomes
2009-03-15 22:03:38 -04:00
Erik Trimble
8d6035660e Merge 2009-03-12 18:16:36 -07:00
Vladimir Kozlov
69f9ddee90 6791178: Specialize for zero as the compressed oop vm heap base
Use zero based compressed oops if java heap is below 32gb and unscaled compressed oops if java heap is below 4gb.

Reviewed-by: never, twisti, jcoomes, coleenp
2009-03-12 10:37:46 -07:00
Andrey Petrusenko
13c13c7289 6760309: G1: update remembered sets during Full GCs
Reviewed-by: iveresov, tonyp
2009-03-10 00:47:05 -07:00
Xiomara Jayasena
2be2e027b0 6814575: Update copyright year
Update copyright for files that have been modified in 2009, up to 03/09

Reviewed-by: katleman, tbell, ohair
2009-03-09 13:28:46 -07:00
Antonios Printezis
faf22e51ad Merge 2009-03-09 11:32:57 -04:00
Antonios Printezis
e4e765e34e 6814467: G1: small fixes related to concurrent marking verboseness
A few small fixes to remove some inconsistencies in the concurrent mark-related verbose GC output.

Reviewed-by: jmasa
2009-03-07 11:07:37 -05:00
Antonios Printezis
8893530f3a 6812428: G1: Error: assert(ret || obj_in_cs(obj),"sanity")
The length of the fast cset test vector is decided at the beginning of a GC, but more regions can be added during the GC. The simple fix is to set the length of the fast cset test vector to the max.

Reviewed-by: iveresov
2009-03-07 11:07:37 -05:00
Igor Veresov
416d70bf91 6720309: G1: don't synchronously update RSet during evacuation pauses
6720334: G1: don't update RSets of collection set regions during an evacuation pause

Introduced a deferred update mechanism for delaying the rset updates during the collection pause

Reviewed-by: apetrusenko, tonyp
2009-03-06 13:50:14 -08:00
Vladimir Kozlov
4b15cdadd3 Merge 2009-03-03 10:34:22 -08:00
Christian Thalinger
05d1de7727 6810672: Comment typos
I have collected some typos I have found while looking at the code.

Reviewed-by: kvn, never
2009-02-27 13:27:09 -08:00
Antonios Printezis
f883e6fde8 6804746: G1: guarantee(variance() > -1.0,"variance should be >= 0") (due to evacuation failure)
Under certain circumstances (evacuation failure) the pause time is not communicated to the policy and, as a result, the pause time field is not initialized properly.

Reviewed-by: jmasa
2009-02-24 15:50:23 -05:00
Jon Masamitsu
3b5d6a04dd 6690928: Use spinning in combination with yields for workstealing termination
Substitute a spin loop for most calls to yield() to reduce the stress on the system.

Reviewed-by: tonyp
2009-02-08 13:18:01 -08:00
Andrey Petrusenko
61181babf1 6484959: G1: introduce survivor spaces
6797754: G1: combined bugfix

Implemented a policy to control G1 survivor space parameters.

Reviewed-by: tonyp, iveresov
2009-02-06 01:38:50 +03:00
Antonios Printezis
5d486c3a66 6484956: G1: improve evacuation pause efficiency
A bunch of performance optimizations to decrease GC pause times in G1.

Reviewed-by: apetrusenko, jmasa, iveresov
2009-01-16 13:02:20 -05:00
Erik Trimble
efd43c045a Merge 2008-12-20 09:57:03 -08:00
Xiomara Jayasena
99f0eac1a2 6785258: Update copyright year
Update copyright for files that have been modified starting July 2008 to Dec 2008

Reviewed-by: katleman, ohair, tbell
2008-12-15 16:55:11 -08:00
John Coomes
000b184507 6578152: fill_region_with_object has usability and safety issues
Reviewed-by: apetrusenko, ysr
2008-12-11 12:05:08 -08:00
Y. Srinivas Ramakrishna
16aa57cb4b 6778647: snap(), snap_policy() should be renamed setup(), setup_policy()
Renamed Reference{Policy,Pocessor} methods from snap{,_policy}() to setup{,_policy}()

Reviewed-by: apetrusenko
2008-12-01 23:25:24 -08:00
Y. Srinivas Ramakrishna
7d7cf3f8af 6684579: SoftReference processing can be made more efficient
For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not.

Reviewed-by: jmasa
2008-11-20 16:56:09 -08:00
Igor Veresov
bc9f364917 6758633: G1: SEGV with GCOld on Linux
Avoid growth of a GrowableArray backend of HeapRegionSeq.

Reviewed-by: tonyp, jcoomes
2008-10-13 21:41:42 -07:00
Antonios Printezis
6f5e28aca1 6752248: G1: introduce parallel heap verification
Introduce parallel heap verification in G1.

Reviewed-by: jcoomes, apetrusenko
2008-10-06 13:16:35 -04:00