124 Commits

Author SHA1 Message Date
Y. Srinivas Ramakrishna
137a679446 6819891: ParNew: Fix work queue overflow code to deal correctly with +UseCompressedOops
When using compressed oops, rather than chaining the overflowed grey objects' pre-images through their klass words, we use GC-worker thread-local overflow stacks.

Reviewed-by: jcoomes, jmasa
2009-03-28 15:47:29 -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
Antonios Printezis
cb822b7e10 Merge 2009-03-25 10:36:08 -04:00
Antonios Printezis
d5e5e5a3d1 6820321: G1: Error: guarantee(check_nums(total, n, parts), "all seq lengths should match")
Small fixes to sort out some verbosegc-related incorrectness and a failure

Reviewed-by: apetrusenko
2009-03-21 22:53:04 -04: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
736e8a2d4b 6815683: G1: SEGV during marking
We should mark the regions that continue humongous regions as live if the first region is live.

Reviewed-by: tonyp
2009-03-16 17:48:01 -07:00
Vladimir Kozlov
f210928e73 6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
Allow Hotspot builds with latest Windows SDK 6.1 on 64bit Windows 2003

Reviewed-by: ohair, tbell, jcoomes
2009-03-16 15:06:33 -07:00
Antonios Printezis
217739210d 6816154: G1: introduce flags to enable/disable RSet updating and scanning
Introduces two flags, -XX:-/+G1EnableParallelRSetUpdating and -XX:-/+G1EnableParallelRSetScanning, to turn on/off the "band aid" fix that serializes RSet updating / scanning during GCs.

Reviewed-by: iveresov
2009-03-16 10:52:44 -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
Y. Srinivas Ramakrishna
a45005f646 6808322: ParNew, CMS, G1: ParGCAllocBuffer overflow
Correct the overflow check in ParGCAllocBuffer::allocate(); simplify ParGCAllocBuffer::undo_allocation().

Reviewed-by: apetrusenko, jcoomes, jmasa, minqi, phh, tonyp
2009-03-13 13:56:01 -07: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
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
Y. Srinivas Ramakrishna
72bfacbd95 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
Call newly created CollectedHeap::dump_{pre,post}_full_gc before and after every stop-world full collection cycle on GenCollectedHeap and ParallelScavengeHeap. (Support for G1CollectedHeap forthcoming under CR 6810861.) Small modifications to existing heap dumping and class histogram implementation, especially to allow multiple on-the-fly histos/dumps by the VM thread during a single safepoint.

Reviewed-by: jmasa, alanb, mchung
2009-03-02 16:37:04 -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
Y. Srinivas Ramakrishna
34b247f068 Merge 2009-01-29 21:25:42 -08:00
Igor Veresov
da292a7197 6783381: NUMA allocator: don't pretouch eden space with UseNUMA
Moved pretouching to MutableSpace. Also MutableSpace now turns on page interleaving for the region it covers.

Reviewed-by: jmasa, jcoomes
2009-01-27 18:13:59 -08:00
Y. Srinivas Ramakrishna
f031c45430 6786503: Overflow list performance can be improved
Avoid overflow list walk in CMS & ParNew when it is unnecessary. Fix a couple of correctness issues, including a C-heap leak, in ParNew at the intersection of promotion failure, work queue overflow and object array chunking. Add stress testing option and related assertion checking.

Reviewed-by: jmasa
2009-01-26 12:47:21 -08:00
Coleen Phillimore
91dd5dcbe4 Merge 2009-01-23 10:41:28 -05: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
Coleen Phillimore
f79090efe7 6793825: Missing include dependancies for GCC without predefined headers
With predefined headers off for gcc, some .inline.hpp files aren't included to make definition visible for inline functions

Reviewed-by: jcoomes, xlu
2009-01-14 20:14:19 -05:00
John Coomes
2ba0d5b055 Merge 2009-01-14 14:12:55 -08:00
Jon Masamitsu
c2ff9781c7 6692899: CMS: many vm.parallel_class_loading tests fail with assert "missing Printezis mark"
The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition.

Reviewed-by: ysr, dcubed
2009-01-11 16:58:24 -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
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