124 Commits

Author SHA1 Message Date
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
6c53645a84 6774607: SIGSEGV or (!is_null(v),"oop value can never be zero") assertion when running with CMS and COOPs
Use the more permissive set_klass_or_null() and klass_or_null() interfaces in ParNew's workqueue overflow code that manipulates the klass-word.

Reviewed-by: coleenp
2008-11-24 09:53:31 -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
Y. Srinivas Ramakrishna
db6bef2c70 6722113: CMS: Incorrect overflow handling during precleaning of Reference lists
When we encounter marking stack overflow during precleaning of Reference lists, we were using the overflow list mechanism, which can cause problems on account of mutating the mark word of the header because of conflicts with mutator accesses and updates of that field. Instead we should use the usual mechanism for overflow handling in concurrent phases, namely dirtying of the card on which the overflowed object lies. Since precleaning effectively does a form of discovered list processing, albeit with discovery enabled, we needed to adjust some code to be correct in the face of interleaved processing and discovery.

Reviewed-by: apetrusenko, jcoomes
2008-11-20 12:27:41 -08:00
Jon Masamitsu
a2078f04e8 6771742: Remove duplicate files from G1 merge
Remove duplicate files and add includeDB_gc_g1 file in windows Makefile

Reviewed-by: jcoomes, ysr
2008-11-18 14:52:33 -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
John Coomes
401e04572a 6765804: GC "dead ratios" should be unsigned
Reviewed-by: ysr, tonyp
2008-10-29 06:30:02 -07:00
Erik Trimble
4b983d3b39 Merge 2008-10-15 18:51:04 -07: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
Erik Trimble
50964694fe Merge 2008-10-07 11:01:35 -07:00
Igor Veresov
d80199b403 6753547: NUMA allocator: Invalid chunk size computation during adaptive resizing
The per-lgrp chuck size can be incorrectly computed (causing an assertion failure) because of the non-associativity of the floating point operations. The fix is to rearrange the operations.

Reviewed-by: ysr
2008-10-06 20:59:16 -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
Xiomara Jayasena
76df5ec473 6754988: Update copyright year
Update for files that have been modified starting July 2008

Reviewed-by: ohair, tbell
2008-10-02 19:58:19 -07:00
John Coomes
e98b7ce059 6729594: par compact - remove unused block table implementation
Reviewed-by: tonyp, jmasa, apetrusenko
2008-09-30 13:15:27 -07:00
John Coomes
f2851186bb 6725697: par compact - rename class ChunkData to RegionData
Reviewed-by: iveresov, tonyp
2008-09-30 12:20:22 -07:00
John Coomes
2e52e9dff2 6716466: par compact - remove VerifyParallelOldWithMarkSweep code
Reviewed-by: jmasa
2008-09-30 11:49:31 -07:00
Igor Veresov
4204f82a1a 6740923: NUMA allocator: Ensure the progress of adaptive chunk resizing
Treat a chuck where the allocation has failed as fully used.

Reviewed-by: ysr
2008-09-27 00:33:13 -07: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
Y. Srinivas Ramakrishna
d9929c525b Merge 2008-08-27 11:20:46 -07:00
Y. Srinivas Ramakrishna
aa6165d767 6722116: CMS: Incorrect overflow handling when using parallel concurrent marking
Fixed CMSConcMarkingTask::reset() to store the restart address upon a marking stack overflow and to use it as the base, suitably aligned, for restarting the scan in CMSConcMarkingTask::do_scan_and_mark().

Reviewed-by: jcoomes, tonyp
2008-08-26 14:54:48 -07:00
Antonios Printezis
cd9045f4e8 6740930: G1: compilation failure with latest gcc
Include DB fix to resolve a compilation issue with the latest gcc.

Reviewed-by: iveresov, ysr
2008-08-26 00:46:03 -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
70202307c0 Merge 2008-08-21 23:38:19 -04:00
Antonios Printezis
615777b6da Merge 2008-08-21 23:36:31 -04:00
Jon Masamitsu
befe056b42 6728478: Assertion at parallel promotion from young to old generation
The fix avoids a call to address_for_index() in this particular situation where it is not known if the passed index is in bounds.

Reviewed-by: tonyp
2008-08-20 23:05:04 -07:00
Y. Srinivas Ramakrishna
57dabb4fcb 6722112: CMS: Incorrect encoding of overflown object arrays during concurrent precleaning
When an object array overflows during precleaning, we should have been marking the entire array dirty, not just its first card.

Reviewed-by: jmasa, poonam, tonyp
2008-08-14 17:58:35 -07: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
Jon Masamitsu
74b3de5c3b 6730514: assertion failure in mangling code when expanding by 0 bytes
An expansion by 0 bytes was not anticipated when the assertion was composed.

Reviewed-by: jjh, jcoomes, apetrusenko
2008-07-30 11:54:00 -07: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
Jon Masamitsu
b8633a3b01 Merge 2008-07-28 15:30:23 -07:00
Coleen Phillimore
20dba03e99 6716785: implicit null checks not triggering with CompressedOops
Allocate alignment-sized page(s) below java heap so that memory accesses at heap_base+1page give signal and cause an implicit null check

Reviewed-by: kvn, jmasa, phh, jcoomes
2008-07-19 17:38:22 -04:00
Igor Veresov
1193f0f9db 6723228: NUMA allocator: assert(lgrp_id != -1, "No lgrp_id set")
6723229: NUMA allocator: assert(lgrp_num > 0, "There should be at least one locality group")

The fix takes care of the assertion triggered during TLAB resizing after reconfiguration. Also it now handles a defect in the topology graph, in which a single leaf node doesn't have memory.

Reviewed-by: jmasa
2008-07-17 10:26:33 -07:00
John Coomes
26625ab7f5 6724367: par compact could clear less young gen summary data
Reviewed-by: jmasa, apetrusenko
2008-07-11 16:11:50 -07:00
John Coomes
038a30dde3 6483129: par compact assertion failure (new_top > bottom)
Avoid computing the dense prefix if a space is empty

Reviewed-by: pbk, tonyp
2008-07-11 16:11:43 -07:00
John Coomes
398aa66a77 6718283: existing uses of *_FORMAT_W() were broken by 6521491
Reviewed-by: ysr, pbk
2008-07-11 16:11:34 -07:00
Erik Trimble
2d6f42d18c Merge 2008-07-11 01:14:44 -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
Jon Masamitsu
18dbebd143 6672698: mangle_unused_area() should not remangle the entire heap at each collection
Maintain a high water mark for the allocations in a space and mangle only up to that high water mark.

Reviewed-by: ysr, apetrusenko
2008-07-09 15:08:55 -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
Xiomara Jayasena
c96a95c4b8 6719955: Update copyright year
Update copyright year for files that have been modified in 2008

Reviewed-by: ohair, tbell
2008-07-02 12:55:16 -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
Y. Srinivas Ramakrishna
f521ab4f1a Merge 2008-06-24 13:20:34 -07:00
John Coomes
93584b3060 6676016: ParallelOldGC leaks memory
Ensure that GCTask threads release resource and handle memory

Reviewed-by: jmasa, chrisphi
2008-06-18 18:36:47 -07:00
Y. Srinivas Ramakrishna
07ef2f8f38 Merge 2008-06-12 14:02:35 -07:00
Y. Srinivas Ramakrishna
ac061d0424 Merge 2008-06-12 13:50:55 -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
John Coomes
762f7c8f2b Merge 2008-06-10 11:14:27 -07:00
Tom Rodriguez
01130cd21c Merge 2008-06-10 09:57:24 -07:00
Coleen Phillimore
a2d6036a4d 6687581: Make CMS work with compressed oops
Make FreeChunk read markword instead of LSB in _klass pointer to indicate that it's a FreeChunk for compressed oops.

Reviewed-by: ysr, jmasa
2008-06-09 11:51:19 -04:00
Igor Veresov
ed4e9a5d5c 6711930: NUMA allocator: ParOld can create a hole less than minimal object size in the lgrp chunk
The fix takes care of three issues that can create a hole less a minimal object in the lgrp chunk

Reviewed-by: ysr, apetrusenko
2008-06-09 07:18:59 -07:00