- 10 12月, 2010 1 次提交
-
-
由 ysr 提交于
Summary: Relaxed the assert by allowing NULL referents when discovery may be concurrent. Reviewed-by: johnc, jcoomes
-
- 08 12月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Allow the eden to the expanded up to a point when the GC locker is active. Reviewed-by: jwilhelm, johnc, ysr, jcoomes
-
- 03 12月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Wrong assumption about expecting the current alloc region expected to be NULL in expand_and_allocate(). Reviewed-by: brutisso, ysr
-
- 02 12月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: Enable reference discovery during concurrent marking by setting the reference processor field of the concurrent marking closure. Keep reference objects on the discovered reference lists alive during incremental evacuation pauses until they are processed at the end of concurrent marking. Reviewed-by: ysr, tonyp
-
- 24 11月, 2010 1 次提交
-
-
由 stefank 提交于
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions. Reviewed-by: coleenp, kvn, kamg
-
- 17 11月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: An evacuation failure while copying the roots caused an object, A, to be forwarded to itself. During the subsequent RSet updating a reference to A was processed causing the reference to be added to the RSet of A's heap region. As a result of adding to the remembered set we ran into the issue described in 6930581 - the sparse table expanded and the RSet scanning code walked the cards in one instance of RHashTable (_cur) while the occupied() counts the cards in the expanded table (_next). Reviewed-by: tonyp, iveresov
-
- 14 10月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: When an entry is stolen, don't push it on the task queue but process it directly. Reviewed-by: iveresov, ysr, jcoomes
-
- 13 10月, 2010 2 次提交
- 02 10月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: Clear the concurrent marking "in progress" flag while the FullGCCount_lock is held. This avoids a race that can cause back to back System.gc() calls, when ExplicitGCInvokesConcurrent is enabled, to fail to initiate a marking cycle causing the requesting thread to hang. Reviewed-by: tonyp, ysr
-
- 21 9月, 2010 1 次提交
-
-
由 jmasa 提交于
Summary: Associate number of GC workers with the workgang as opposed to the task. Reviewed-by: johnc, ysr
-
- 26 8月, 2010 1 次提交
-
-
由 jcoomes 提交于
Reviewed-by: tonyp, ysr
-
- 25 8月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: This change revamps the slow allocation path of G1. Improvements include the following: a) Allocations directly to old regions are now totally banned. G1 now only allows allocations out of young regions (with the only exception being humongous regions). b) The thread that allocates a new region (which is now guaranteed to be young) does not dirty all its cards. Each thread that successfully allocates out of a young region is now responsible for dirtying the cards that corresponding to the "block" that just got allocated. c) allocate_new_tlab() and mem_allocate() are now implemented differently and TLAB allocations are only done by allocate_new_tlab(). d) If a thread schedules an evacuation pause in order to satisfy an allocation request, it will perform the allocation at the end of the safepoint so that the thread that initiated the GC also gets "first pick" of any space made available by the GC. e) If a thread is unable to allocate a humongous object it will schedule an evacuation pause in case it reclaims enough regions so that the humongous allocation can be satisfied aftewards. f) The G1 policy is more careful to set the young list target length to be the survivor number +1. g) Lots of code tidy up, removal, refactoring to make future changes easier. Reviewed-by: johnc, ysr
-
- 18 8月, 2010 3 次提交
-
-
由 tonyp 提交于
6975964: G1: print out a more descriptive message for evacuation failure when +PrintGCDetails is set Summary: we're renaming "evacuation failure" to "to-space overflow". I'm also piggy-backing a small additional change which removes the "Mark closure took..." output. Reviewed-by: ysr, johnc
-
由 tonyp 提交于
Summary: as the title says, sometimes we are allocating humongous objects in young regions and we shouldn't. Reviewed-by: ysr, johnc
-
由 tonyp 提交于
Summary: There are a few issues in the code that calculates whether to resize the heap and by how much: a) some calculations can overflow 32-bit size_t's, b) min_desired_capacity is not bounded by the max heap size, and c) the assrt that fires is in the wrong place. The fix also includes some tidying up of the related verbose code. Reviewed-by: ysr, jmasa
-
- 09 8月, 2010 1 次提交
-
-
由 jcoomes 提交于
Reviewed-by: tonyp, ysr
-
- 05 8月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: As part of 6944166 we disabled the concept of abandoned pauses (i.e., if the collection set is empty, we would still try to do a pause even if it is to update the RSets and scan the roots). This changeset removes the code and structures associated with abandoned pauses. Reviewed-by: iveresov, johnc
-
- 03 8月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure. Reviewed-by: iveresov, jmasa, tonyp
-
- 20 7月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: During concurrent refinment, filter cards in young regions after it has been determined that the region has been allocated from and the young type of the region has been set. Reviewed-by: iveresov, tonyp, jcoomes
-
- 29 6月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: G1 was not handling explicit GCs correctly in many ways. It does now. See the CR for the list of improvements contained in this changeset. Reviewed-by: iveresov, ysr, johnc
-
- 28 5月, 2010 2 次提交
- 19 5月, 2010 1 次提交
-
-
由 jcoomes 提交于
Reviewed-by: kamg, ysr, dholmes, johnc
-
- 15 5月, 2010 1 次提交
-
-
由 apetrusenko 提交于
6921317: (partial) G1: assert(top() == bottom() || zfs == Allocated,"Region must be empty, or we must be setting it to Summary: Extended the failing assertion with the new message format to get more data. Reviewed-by: tonyp
-
- 23 4月, 2010 2 次提交
-
-
由 tonyp 提交于
Summary: Small improvements to G1's PrintGCDetails output. It also includes minor formatting details. Reviewed-by: ysr, johnc
-
由 johnc 提交于
6871109: G1: remove the concept of the scan only prefix Summary: Removed scan only regions and associated code. The young portion of the collection set is now constructed incrementally - when a young region is retired as the current allocation region it is added to the collection set. Reviewed-by: apetrusenko, iveresov, tonyp
-
- 16 4月, 2010 3 次提交
-
-
由 apetrusenko 提交于
Summary: Replaces the G1-specific parameter with the existing ones that are used by the other GCs (YoungPLABSize and OldPLABSize) Reviewed-by: tonyp, johnc
-
由 tonyp 提交于
Summary: The outgoing region map is not maintained properly and it's causing an assert failure. Given that we don't actually use it, I'm removing it. I'm piggy-backing a small change on this which removes a message that it's printed before a Full GC when DisableExplicitGC is set. Reviewed-by: apetrusenko, ysr
-
由 johnc 提交于
Summary: The expression that calculates the live bytes for a heap region can overflow for a suitably large humongous region/object. Cache the object size in a suitably sized local variable so that the expression is converted to a wider type. Reviewed-by: tonyp, jmasa, iveresov, apetrusenko
-
- 08 4月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: Humongous regions may contain multiple objects as a result of being retained as to-space from a previous GC and then re-used as to-space after being tagged as humongous. These changes include a check that causes retained to-space regions that are now tagged as humongous to be disregarded and a new to-space region allocated. Reviewed-by: tonyp, iveresov
-
- 06 4月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Make sure that two marking cycles do not overlap, i.e., a new one can only start after the concurrent marking thread finishes all its work. In the fix I piggy-back a couple of minor extra fixes: some general code reformatting for consistency (only around the code I modified), the removal of a field (G1CollectorPolicy::_should_initiate_conc_mark) which doesn't seem to be used at all (it's only set but never read), as well as moving the "is GC locker active" test earlier into the G1 pause / Full GC and using a more appropriate method for it. Reviewed-by: johnc, jmasa, jcoomes, ysr
-
- 31 3月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Various fixes to the G1 debugging output. Reviewed-by: johnc, iveresov
-
- 14 4月, 2010 1 次提交
-
-
由 jmasa 提交于
Summary: Ensure a full GC that clears SoftReferences before throwing an out-of-memory Reviewed-by: ysr, jcoomes
-
- 12 3月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: A TLAB became large enough to be considered a humongous object allowing multiple objects to be allocated in a humongous region, which violates a basic assumption about humongous regions. The changes ensure that TLABs cannot be regarded as humongous. Reviewed-by: iveresov, tonyp
-
- 24 2月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Rename G1 parameters to make them more consistent. Reviewed-by: jmasa, johnc
-
- 12 2月, 2010 1 次提交
-
-
由 iveresov 提交于
Summary: Implemented block-based work stealing. Moved copying during the rset scanning phase to the main copying phase. Made the size of rset table depend on the region size. Reviewed-by: apetrusenko, tonyp
-
- 02 2月, 2010 1 次提交
-
-
由 ysr 提交于
Summary: Fixed missing pre-barrier calls for G1, modified C1 to call pre- and correct post-barrier interfaces, deleted obsolete interface, (temporarily) disabled redundant deferred barrier in BacktraceBuilder. Reviewed-by: coleenp, jmasa, kvn, never
-
- 14 1月, 2010 1 次提交
-
-
由 ysr 提交于
Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future. Reviewed-by: never, johnc
-
- 17 12月, 2009 1 次提交
-
-
由 iveresov 提交于
Summary: Reworked the concurrent refinement: threads activation, feedback-based threshold adjustment, other miscellaneous fixes. Reviewed-by: apetrusenko, tonyp
-