784 Commits

Author SHA1 Message Date
Erik Trimble
efd43c045a Merge 2008-12-20 09:57:03 -08:00
Jon Masamitsu
91caa3b23f Merge 2008-12-19 12:15:34 -08:00
John Coomes
f3c34ce9b6 6786188: par compact - "SplitALot" stress mode should fill to_space
Reviewed-by: jmasa, tonyp
2008-12-18 10:54:01 -08:00
John Coomes
f90394b6fb 6784849: par compact - can fail when to_space is non-empty
Reviewed-by: jmasa, tonyp
2008-12-18 10:53:35 -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
8fc946854c 6765954: par compact - stress mode for splitting young gen spaces
Reviewed-by: jmasa
2008-12-11 12:05:21 -08:00
John Coomes
7a9585170d 6765745: par compact - allow young gen spaces to be split
Reviewed-by: jmasa
2008-12-11 12:05:14 -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
Igor Veresov
af509dd90d 6779436: NUMA allocator: libnuma expects certain size of the buffer in numa_node_to_cpus()
In os::Linux::rebuild_cpu_to_node_map() fix the size of the CPU bitmap. Fixed arithmetic in MutableNUMASpace::adaptive_chunk_size() that could cause overflows and underflows of the chunk_size variable.

Reviewed-by: apetrusenko
2008-12-03 14:18:57 -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
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