68 Commits

Author SHA1 Message Date
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
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
Chuck Rasbold
8f5e42a671 Merge 2008-05-30 07:22:22 -07:00
Coleen Phillimore
646ceb4a45 6696264: assert("narrow oop can never be zero") for GCBasher & ParNewGC
Decouple set_klass() with zeroing the gap when compressed.

Reviewed-by: kvn, ysr, jrose
2008-05-28 21:06:24 -07:00
Vladimir Kozlov
e53e767d88 6703888: Compressed Oops: use the 32-bits gap after klass in a object
Use the gap also for a narrow oop field and a boxing object value.

Reviewed-by: coleenp, never
2008-05-21 16:31:35 -07:00
Daniel D. Daugherty
7c478e3028 Merge 2008-05-20 09:47:05 -07:00
Daniel D. Daugherty
e03f944292 Merge 2008-05-16 13:42:07 -07:00