185 Commits

Author SHA1 Message Date
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
Antonios Printezis
e7d899910b 6810698: G1: two small bugs in the sparse remembered sets
The _expanded flag of the sparse RSets is not reset and this can leave a RSet in an inconsistent state if it is expanded more than once. Also, we should be iterating over the _cur, instead of the _next, sparse table

Reviewed-by: apetrusenko, iveresov
2009-03-07 11:07:36 -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
Andrey Petrusenko
a7da5440dd 6700941: G1: allocation spec missing for some G1 classes
Reviewed-by: tonyp
2009-02-10 18:39:09 +03:00
Andrey Petrusenko
4be1a50ed3 6802413: G1: G1FixedSurvivorSpaceSize should be converted into regions in calculate_survivors_policy()
Reviewed-by: tonyp, jmasa
2009-02-09 17:33:06 +03: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
John Coomes
2ba0d5b055 Merge 2009-01-14 14:12:55 -08:00
Jon Masamitsu
3474623106 6689653: JMapPerm fails with UseConcMarkSweepIncGC and compressed oops off
Added safe_object_iterate() for use by JMapPerm.

Reviewed-by: tonyp
2009-01-06 07:05:05 -08:00
Erik Trimble
ac1f463988 Merge 2008-12-20 09:58:36 -08: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
Swamy Venkataramanappa
06e37c03fb 6653214: MemoryPoolMXBean.setUsageThreshold() does not support large heap sizes
Reviewed-by: ysr, mchung
2008-12-15 13:58:57 -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
cbf1c89d60 6770608: G1: Mutator thread can flush barrier and satb queues during safepoint
6660573: G1: BigApps Failure : guarantee(satb_mq_set.completed_buffers_num() == 0,"invariant")

When exiting a mutator thread is removed from the thread list before it has a chance to flush its SATB and barrier queues. If GC happens at this moment the objects that are refererred from these queues can be moved, which will case a crash. The fix is simply to flush the buffers before removing a thread from the list.

Reviewed-by: jcoomes, tonyp
2008-11-14 14:23:05 -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
Antonios Printezis
c03ab32ab5 6742641: G1: NullPointerException during GCOld
An update buffer is not processed correctly, which causes roots into the collection set not to be scanned and, hence, for the heap to be corrupted. The cause is that an object is accessed after it has been explicitly deleted, which causes a race.

Reviewed-by: jcoomes, ysr
2008-09-22 09:56:49 -04:00
Igor Veresov
48d3ec1660 6735416: G1: runThese javasoft.sqe.tests.lang.thrd011.thrd01101.thrd01101 fails
6622418: G1: assert(false,"Non-balanced monitor enter/exit!") fails

The mark-sweep compact (which we use for full gc) wrapper did not save the mark words for biased locked objects.  The fix is to trivially call the appropriate methods.

Reviewed-by: tonyp, ysr
2008-08-22 11:48:25 -07:00
Antonios Printezis
615777b6da Merge 2008-08-21 23:36:31 -04:00
Antonios Printezis
e2b3310cb6 6722565: G1: assert !r->is_on_unclean_list() fires
Under certain circumstances, two cleanup threads can claim and process the same region.

Reviewed-by: apetrusenko, ysr
2008-08-06 11:57:31 -04:00
Igor Veresov
09fd47bcef 6652160: G1: assert(cur_used_bytes == _g1->recalculate_used(),"It should!") at g1CollectorPolicy.cpp:1425
In attempt_allocation_slow() wait for the concurrent cleanup to complete before modifying _summary_bytes_used.

Reviewed-by: jmasa, apetrusenko
2008-07-30 10:45:52 -07:00
Igor Veresov
2703662478 6723570: G1: assertion failure: p == current_top or oop(p)->is_oop(),"p is not a block start" (revisited!)
Fixed the incorrect assigment to G1OffsetTableContigSpace::_gc_time_stamp. Also added a little more paranoia to operations on a global timestamp.

Reviewed-by: tonyp
2008-07-10 09:29:54 -07:00
Igor Veresov
07198ddeda 6702387: G1: assertion failure: assert(p == current_top || oop(p)->is_oop(),"p is not a block start")
Do not coalesce dead and moved objects when removing self-forwarding pointers during the evacuation failure. Also fixed a issue in a BOT refinement code for TLABs.

Reviewed-by: tonyp, jcoomes
2008-07-03 03:17:29 -07:00
Y. Srinivas Ramakrishna
d44be8e3a0 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
Experimental() flags will protect features of an experimental nature that are not supported in the regular product build. Made UseG1GC an experimental flag.

Reviewed-by: jmasa, kamg, coleenp
2008-06-30 17:04:59 -07:00
Igor Veresov
a82afd549a 6710665: G1: guarantee(_cm->out_of_regions() && _cm->region_stack_empty() && _task_queue->size() == 0, ...)
Remove the incorrect assumptions from guarantee()s.

Reviewed-by: ysr, tonyp
2008-06-11 05:12:19 -07:00
Y. Srinivas Ramakrishna
18f3386a98 6711316: Open source the Garbage-First garbage collector
First mercurial integration of the code for the Garbage-First garbage collector.

Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
2008-06-05 15:57:56 -07:00