- 19 3月, 2013 2 次提交
-
-
由 johnc 提交于
Summary: Skip reference processing if the global marking stack overflows during remark. Refactor and rename set_phase(); move code that sets the concurrency level into its own routine. Do not call set_phase() from within parallel reference processing; use the concurrency level routine instead. The marking state should only set reset by CMTask[0] during the concurrent phase of the marking cycle; if an overflow occurs at any stage during the remark, the marking state will be reset after reference processing. Reviewed-by: brutisso, jmasa
-
由 johnc 提交于
Summary: In CMTask::do_marking_step(), Skip offering termination and entering the first and second synchronization barriers if called from a serial context, i.e. the VM thread. Reviewed-by: brutisso, tschatzl
-
- 06 3月, 2013 1 次提交
-
-
由 tamao 提交于
Summary: Update the task local finger to the start of the next object when marking aborts, in order to avoid the redundant scanning of all 0's when the marking task restarts, if otherwise updating to the next word. In addition, reuse the routine nextObject() in routine iterate(). Reviewed-by: johnc, ysr Contributed-by: Ntamao <tao.mao@oracle.com>
-
- 06 2月, 2013 1 次提交
-
-
由 johnc 提交于
Summary: Reuse the parallel reference processing oop closures during serial reference processing. Reviewed-by: brutisso
-
- 01 2月, 2013 1 次提交
-
-
由 johnc 提交于
Summary: Check that the concurrent marking worker gang exists in ConcurrentMark::print_worker_threads_on(). Changes were also reviewed by Vitaly Davidovich <vitalyd@gmail.com>. Reviewed-by: brutisso
-
- 04 1月, 2013 1 次提交
-
-
由 johnc 提交于
Summary: Reset the marking state, including the mark stack overflow flag, in the event of a marking stack overflow during serial reference processing. Reviewed-by: jmasa
-
- 06 10月, 2012 1 次提交
-
-
由 johnc 提交于
Summary: Change the type of various task num fields, parameters etc to unsigned and rename them to be more consistent with the other collectors. Code changes were also reviewed by Vitaly Davidovich. Reviewed-by: johnc Contributed-by: NKaushik Srenevasan <kaushik@twitter.com>
-
- 02 10月, 2012 1 次提交
-
-
由 johnc 提交于
Summary: Set the value of MarkStackSize to a value based on the number of parallel marking threads with a reasonable minimum. Expand the marking stack if we have to restart marking due to an overflow up to a reasonable maximum. Allocate the underlying space for the marking stack from virtual memory. Reviewed-by: jmasa, brutisso
-
- 28 9月, 2012 1 次提交
-
-
由 johnc 提交于
Summary: The clipping code in the routine that sets the bits for a range of cards, in the liveness accounting verification code was incorrect. It set all the bits in the card bitmap from the given starting index which would lead to spurious marking verification failures. Reviewed-by: brutisso, jwilhelm, jmasa
-
- 29 6月, 2012 1 次提交
-
-
由 zgu 提交于
7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
-
- 18 4月, 2012 1 次提交
-
-
由 tonyp 提交于
Summary: Change the type of fields / variables / etc. that represent region counts and indeces from size_t to uint. Reviewed-by: iveresov, brutisso, jmasa, jwilhelm
-
- 06 4月, 2012 1 次提交
-
-
由 tonyp 提交于
Summary: Removed lots of dead code after some recent conc mark changes. Reviewed-by: brutisso, johnc
-
- 26 1月, 2012 1 次提交
-
-
由 tonyp 提交于
Summary: Re-enable survivors during the initial-mark pause. Afterwards, the concurrent marking threads have to scan them and mark everything reachable from them. The next GC will have to wait for the survivors to be scanned. Reviewed-by: brutisso, johnc
-
- 12 1月, 2012 1 次提交
-
-
由 johnc 提交于
Summary: Remove the separate counting phase of concurrent marking by tracking the amount of marked bytes and the cards spanned by marked objects in marking task/worker thread local data structures, which are updated as individual objects are marked. Reviewed-by: brutisso, tonyp
-
- 16 1月, 2012 1 次提交
-
-
由 brutisso 提交于
Summary: Removed references to CMS in the concurrentMark.cpp/hpp files. Reviewed-by: tonyp, jmasa, johnc
-
- 14 1月, 2012 1 次提交
-
-
由 johnc 提交于
Summary: There is a high number of mispredicted branches associated with calling BitMap::iteratate() from within CMBitMapRO::iterate(). Implement a version of CMBitMapRO::iterate() directly using inline-able routines. Reviewed-by: tonyp, iveresov
-
- 11 1月, 2012 1 次提交
-
-
由 tonyp 提交于
Summary: This change simplifies the interaction between GC and concurrent marking. By disabling survivor spaces during the initial-mark pause we don't need to propagate marks of objects we copy during each GC (since we never need to copy an explicitly marked object). Reviewed-by: johnc, brutisso
-
- 17 12月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: Running G1 with ParallelGCThreads==0 results in various crashes and asserts. Most of these are caused by unguarded references to the worker threads array or an incorrect number of active workers. Reviewed-by: jmasa, tonyp
-
- 15 12月, 2011 1 次提交
-
-
由 jmasa 提交于
Summary: Change variables representing the number of GC workers to uint from int and size_t. Change the parameter in work(int i) to work(uint worker_id). Reviewed-by: brutisso, tonyp
-
- 18 11月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: Parallelize the serial code that was used to mark objects reachable from survivor objects in the collection set. Some minor improvments in the timers used to track the freeing of the collection set along with some tweaks to PrintGCDetails. Reviewed-by: tonyp, brutisso
-
- 23 9月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: G1 now uses two reference processors - one is used by concurrent marking and the other is used by STW GCs (both full and incremental evacuation pauses). In an evacuation pause, the reference processor is embedded into the closures used to scan objects. Doing so causes causes reference objects to be 'discovered' by the reference processor. At the end of the evacuation pause, these discovered reference objects are processed - preserving (and copying) referent objects (and their reachable graphs) as appropriate. Reviewed-by: ysr, jwilhelm, brutisso, stefank, tonyp
-
- 19 8月, 2011 1 次提交
-
-
由 brutisso 提交于
Summary: Removed the possibility to turn off generational mode for G1. Reviewed-by: johnc, ysr, tonyp
-
- 10 8月, 2011 1 次提交
-
-
由 jmasa 提交于
Summary: Select number of GC threads dynamically based on heap usage and number of Java threads Reviewed-by: johnc, ysr, jcoomes
-
- 21 6月, 2011 1 次提交
-
-
由 tonyp 提交于
Summary: Only cosmetic changes to make the concurrentMark.* more consistent, code-style-wise, with the rest of the codebase. Reviewed-by: johnc, ysr
-
- 15 6月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: Perform a heap verification after the first phase of G1's full GC using objects' mark words to determine liveness. The third parameter of the heap verification routines, which was used in G1 to determine which marking bitmap to use in liveness calculations, has been changed from a boolean to an enum with values defined for using the mark word, and the 'prev' and 'next' bitmaps. Reviewed-by: tonyp, ysr
-
- 14 6月, 2011 1 次提交
-
-
由 tonyp 提交于
Summary: Some optimizations to improve the concurrent marking phase: specialize the main oop closure, make sure a few methods in the fast path are properly inlined, a few more bits and pieces, and some cosmetic fixes. Reviewed-by: stefank, johnc
-
- 17 5月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: During an evacuation pause clear the region fields of any concurrent marking task whose local finger points into the collection set as the values in the region fields will become stale. Clearing these fields causes the concurrent mark task to claim a new region when marking restarts after the pause. Reviewed-by: tonyp, iveresov
-
- 30 4月, 2011 1 次提交
-
-
由 tonyp 提交于
7034139: G1: assert(Thread::current()->is_ConcurrentGC_thread()) failed: only a conc GC thread can call this. Summary: We were calling STS join and leave during a STW pause and we are not suppoesed to. I now only call those during concurrent phase. I also added stress code in the non-product builds to force an overflows (the condition that ws uncovering the bug) to make sure it does not happen again. Reviewed-by: johnc, brutisso
-
- 05 4月, 2011 1 次提交
-
-
由 tonyp 提交于
Summary: Repurpose the existing flag G1PrintRegionLivenessInfo to print out the liveness distribution across the regions in the heap at the end of marking. Reviewed-by: iveresov, jwilhelm
-
- 26 1月, 2011 1 次提交
-
-
由 johnc 提交于
Summary: Implement support for ParallelRefProcEnabled in the reference processing that takes place at the end of G1 concurrent marking. Reviewed-by: tonyp, ysr
-
- 20 1月, 2011 1 次提交
-
-
由 tonyp 提交于
Summary: This changeset removes the zero-filling thread from G1 and collapses the two free region lists we had before (the "free" and "unclean" lists) into one. The new free list uses the new heap region sets / lists abstractions that we'll ultimately use it to keep track of all regions in the heap. A heap region set was also introduced for the humongous regions. Finally, this change increases the concurrency between the thread that completes freeing regions (after a cleanup pause) and the rest of the system (before we'd have to wait for said thread to complete before allocating a new region). The changest also includes a lot of refactoring and code simplification. Reviewed-by: jcoomes, johnc
-
- 18 12月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: Initialize the _is_alive_non_header field of G1's reference processor with an instance of the G1CMIsAliveClosure. This will stop adding reference objects with live referents to the discovered reference lists unnecessarily. Reviewed-by: tonyp, ysr, jwilhelm, brutisso
-
- 24 11月, 2010 1 次提交
-
-
由 stefank 提交于
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions. Reviewed-by: coleenp, kvn, kamg
-
- 29 9月, 2010 1 次提交
-
-
由 johnc 提交于
Summary: Re-enable use of the lock-free versions of region stack push() and pop() by recording aborted regions in a thread-local structure, which are then processed when scanning of the region stack restarts. The previous locking versions of these routines are retained for diagnostic purposes. Reviewed-by: tonyp, ysr
-
- 28 5月, 2010 1 次提交
-
-
由 trims 提交于
Summary: Change all the Sun copyrights to Oracle copyright Reviewed-by: ohair
-
- 23 4月, 2010 1 次提交
-
-
由 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
-
- 06 4月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Calling the methods region_stack_push() and region_stack_pop() concurrent is not MT-safe. The assumption is that we will only call region_stack_push() during a GC pause and region_stack_pop() during marking. Unfortunately, we also call region_stack_push() during marking which seems to be introducing subtle marking failures. This change introduces lock-based methods for pushing / popping to be called during marking. Reviewed-by: iveresov, johnc
-
- 31 3月, 2010 1 次提交
-
-
由 tonyp 提交于
Summary: Various fixes to the G1 debugging output. Reviewed-by: johnc, iveresov
-
- 04 3月, 2010 1 次提交
-
-
由 jcoomes 提交于
Summary: Use an explicit stack for object arrays and process them in chunks. Reviewed-by: iveresov, apetrusenko
-
- 07 10月, 2009 1 次提交
-
-
由 tonyp 提交于
Summary: change more guarantees in concurrent marking into asserts. Reviewed-by: apetrusenko, iveresov
-