Commit graph

50 commits

Author SHA1 Message Date
Jon Masamitsu
28e56b8970 6984287: Regularize how GC parallel workers are specified
Associate number of GC workers with the workgang as opposed to the task.

Reviewed-by: johnc, ysr
2010-09-20 14:38:38 -07:00
Y. Srinivas Ramakrishna
f53d569221 6983930: CMS: Various small cleanups ca September 2010
Fixed comment/documentation typos; converted some guarantee()s to assert()s.

Reviewed-by: jmasa
2010-09-10 17:07:55 -07:00
Y. Srinivas Ramakrishna
fc61f2721e 6977970: CMS: concurrentMarkSweepGeneration.cpp:7947 assert(addr <= _limit) failed: sweep invariant
Allow for the possibility (when the heap is expanding) that the sweep might skip over and past, rather than necessarily step on, the sweep limit determined at the beginning of a concurrent marking cycle.

Reviewed-by: jmasa, tonyp
2010-08-18 11:39:21 -07:00
Y. Srinivas Ramakrishna
77f845359a 6948538: CMS: BOT walkers can fall into object allocation and initialization cracks
GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode.

Reviewed-by: chrisphi, johnc, poonam
2010-08-16 15:58:42 -07:00
Kevin Walls
75c23332be Merge 2010-07-31 15:10:59 +01:00
Kevin Walls
5fb46fd5a8 6581734: CMS Old Gen's collection usage is zero after GC which is incorrect
Management code enabled for use by a concurrent collector.

Reviewed-by: mchung, ysr
2010-07-30 22:43:50 +01:00
John Coomes
daf491a814 6962947: shared TaskQueue statistics
Reviewed-by: tonyp, ysr
2010-07-16 21:33:21 -07:00
John R Rose
d6a9b93b5a Merge 2010-06-02 22:45:42 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
Vladimir Kozlov
cc18a50e59 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
Added new product ObjectAlignmentInBytes flag to control object alignment.

Reviewed-by: twisti, ysr, iveresov
2010-05-27 18:01:56 -07:00
Y. Srinivas Ramakrishna
4715f32101 6951188: CMS: move PromotionInfo into its own file
Moved PromotionInfo and friends into new files promotionInfo.{h,c}pp from their previous compactibleFreeListSpace.{h,c}pp home.

Reviewed-by: apetrusenko
2010-05-10 12:31:52 -07:00
Y. Srinivas Ramakrishna
d14cf2e13c 6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker
GC-locker induced concurrent full gc should be asynchronous; policy now controlled by a separate flag, which defaults to false.

Reviewed-by: jmasa
2010-05-03 20:19:05 -07:00
Y. Srinivas Ramakrishna
762f60d343 6948537: CMS: BOT walkers observe out-of-thin-air zeros on sun4v sparc/CMT
On sun4v/CMT avoid use of memset() in BOT updates so as to prevent concurrent BOT readers from seeing the phantom zeros arising from memset()'s use of BIS.

Reviewed-by: jmasa, johnc, minqi, poonam, tonyp
2010-05-03 10:24:51 -07:00
Jon Masamitsu
f5197d0d36 6858496: Clear all SoftReferences before an out-of-memory due to GC overhead limit
Ensure a full GC that clears SoftReferences before throwing an out-of-memory

Reviewed-by: ysr, jcoomes
2010-04-13 13:52:10 -07:00
Jon Masamitsu
5fdec09798 6910182: CMS: assert(_cursor[j] == _survivor_plab_array[j].end(),"Ctl pt invariant")
Calculation of the slicing of survivor spaces for MT was incorrect.

Reviewed-by: ysr
2010-03-03 08:10:41 -08:00
Jon Masamitsu
f254745228 6928081: G1: rename parameters common with CMS
Rename marking stack sizing flags to be common between G1 and CMS

Reviewed-by: ysr, tonyp
2010-02-24 07:00:33 -08:00
Jon Masamitsu
b2ed547ec0 6895236: CMS: cmsOopClosures.inline.hpp:43 assert(..., "Should remember klasses in this context")
Adjust assertion checking for ExplicitGCInvokesConcurrentAndUnloadsClasses as a reason for class unloading

Reviewed-by: ysr
2010-01-21 11:33:32 -08:00
Y. Srinivas Ramakrishna
272a6d47bb 6631166: CMS: better heuristics when combatting fragmentation
Autonomic per-worker free block cache sizing, tunable coalition policies, fixes to per-size block statistics, retuned gain and bandwidth of some feedback loop filters to allow quicker reactivity to abrupt changes in ambient demand, and other heuristics to reduce fragmentation of the CMS old gen. Also tightened some assertions, including those related to locking.

Reviewed-by: jmasa
2009-12-23 09:23:54 -08:00
Jon Masamitsu
bedf908436 6898857: [Regression] -XX:NewRatio with -XX:+UseConcMarkSweepGC causes fatal error
Use CollectorPolicy information instead of MaxNewSize

Reviewed-by: ysr, jcoomes
2009-11-10 11:32:48 -08:00
John R Rose
eb73cf4739 6885169: merge of 4957990 and 6863023 causes conflict on do_nmethods
After mechanically merging changes, some by-hand adjustments are needed.

Reviewed-by: ysr
2009-09-23 23:57:44 -07:00
John R Rose
40d52710f6 Merge 2009-09-23 23:56:15 -07:00
John R Rose
e261aecad8 6863023: need non-perm oops in code cache for JSR 292
Make a special root-list for those few nmethods which might contain non-perm oops.

Reviewed-by: twisti, kvn, never, jmasa, ysr
2009-09-15 21:53:47 -07:00
Y. Srinivas Ramakrishna
c6763b5bad 4957990: Perm heap bloat in JVM
Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately.

Reviewed-by: jcoomes, jmasa, kvn, never
2009-09-02 00:04:29 -07:00
Jon Masamitsu
20a43bad21 6798898: CMS: bugs related to class unloading
Override should_remember_klasses() and remember_klass() as needed.

Reviewed-by: ysr, jcoomes
2009-08-24 10:36:31 -07:00
Y. Srinivas Ramakrishna
9611174798 6848641: CMSCollector::_roots_scanning_options should be initialized
The field is now initialized in the constructor.

Reviewed-by: iveresov, jmasa, johnc
2009-06-07 00:27:41 -07:00
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
Erik Trimble
8d6035660e Merge 2009-03-12 18:16:36 -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
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
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
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
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
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
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
615777b6da Merge 2008-08-21 23:36:31 -04: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
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
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
ac061d0424 Merge 2008-06-12 13:50:55 -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
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
Y. Srinivas Ramakrishna
9b2d755745 6662086: 6u4+, 7b11+: CMS never clears referents when -XX:+ParallelRefProcEnabled
Construct the relevant CMSIsAliveClosure used by CMS during parallel reference processing with the correct span. It had incorrectly been constructed with an empty span, a regression introduced in 6417901.

Reviewed-by: jcoomes
2008-05-06 15:37:36 -07:00
Coleen Phillimore
4a831d45f0 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv

Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
2008-04-13 17:43:42 -04:00
Y. Srinivas Ramakrishna
f2b6ac989e 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
The option CMSInitiatingPermOccupancyFraction now controls perm triggering threshold. Even though the actual value of the threshold has not yet been changed, so there is no change in policy, we now have the infrastructure in place for dynamically deciding when to collect the perm gen, an issue that will be addressed in the near future.

Reviewed-by: jmasa
2008-03-16 21:57:25 -07:00
Y. Srinivas Ramakrishna
74f243990c 6642634: Test nsk/regression/b6186200 crashed with SIGSEGV
Use correct allocation path in expand_and_allocate() so object's mark and p-bits are set as appropriate.

Reviewed-by: jmasa, pbk
2008-02-21 11:03:54 -08:00
Y. Srinivas Ramakrishna
ae065e6290 6621144: CMS: assertion failure "is_cms_thread == Thread::current()->is_ConcurrentGC_thread()"
Take lock conditionally (in asynchronous mode only) when updating the dead-object map.

Reviewed-by: jmasa
2008-02-16 22:41:20 -08:00
J. Duke
8153779ad3 Initial load 2007-12-01 00:00:00 +00:00