1. 19 3月, 2013 2 次提交
    • J
      8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809 · a486ffec
      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
      a486ffec
    • J
      8009536: G1: Apache Lucene hang during reference processing · 46f2b2ac
      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
      46f2b2ac
  2. 06 3月, 2013 1 次提交
  3. 06 2月, 2013 1 次提交
  4. 01 2月, 2013 1 次提交
    • J
      8005875: G1: Kitchensink fails with ParallelGCThreads=0 · 6fa36406
      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
      6fa36406
  5. 04 1月, 2013 1 次提交
  6. 06 10月, 2012 1 次提交
  7. 02 10月, 2012 1 次提交
  8. 28 9月, 2012 1 次提交
    • J
      7200261: G1: Liveness counting inconsistencies during marking verification · ebc0255b
      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
      ebc0255b
  9. 29 6月, 2012 1 次提交
    • Z
      6995781: Native Memory Tracking (Phase 1) · bdfb3cf5
      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
      bdfb3cf5
  10. 18 4月, 2012 1 次提交
  11. 06 4月, 2012 1 次提交
  12. 26 1月, 2012 1 次提交
    • T
      7127706: G1: re-enable survivors during the initial-mark pause · b73e0e37
      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
      b73e0e37
  13. 12 1月, 2012 1 次提交
    • J
      6484965: G1: piggy-back liveness accounting phase on marking · f13c0dfe
      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
      f13c0dfe
  14. 16 1月, 2012 1 次提交
  15. 14 1月, 2012 1 次提交
  16. 11 1月, 2012 1 次提交
    • T
      6888336: G1: avoid explicitly marking and pushing objects in survivor spaces · a6a74fef
      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
      a6a74fef
  17. 17 12月, 2011 1 次提交
    • J
      7120038: G1: ParallelGCThreads==0 is broken · c4973f85
      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
      c4973f85
  18. 15 12月, 2011 1 次提交
  19. 18 11月, 2011 1 次提交
    • J
      7112743: G1: Reduce overhead of marking closure during evacuation pauses · 9ee12139
      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
      9ee12139
  20. 23 9月, 2011 1 次提交
    • J
      6484982: G1: process references during evacuation pauses · 9c3adbcc
      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
      9c3adbcc
  21. 19 8月, 2011 1 次提交
  22. 10 8月, 2011 1 次提交
  23. 21 6月, 2011 1 次提交
  24. 15 6月, 2011 1 次提交
    • J
      7004681: G1: Extend marking verification to Full GCs · 0e040a45
      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
      0e040a45
  25. 14 6月, 2011 1 次提交
    • T
      7046558: G1: concurrent marking optimizations · 2db1d718
      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
      2db1d718
  26. 17 5月, 2011 1 次提交
    • J
      7041440: G1: assert(obj->is_oop_or_null(true )) failed: Error # · cb26465b
      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
      cb26465b
  27. 30 4月, 2011 1 次提交
    • T
      7034139: G1: assert(Thread::current()->is_ConcurrentGC_thread()) failed: only... · 2526ebc0
      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
      2526ebc0
  28. 05 4月, 2011 1 次提交
  29. 26 1月, 2011 1 次提交
  30. 20 1月, 2011 1 次提交
    • T
      6977804: G1: remove the zero-filling thread · 0ed267ef
      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
      0ed267ef
  31. 18 12月, 2010 1 次提交
    • J
      7006113: G1: Initialize ReferenceProcessor::_is_alive_non_header field · a2d29d26
      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
      a2d29d26
  32. 24 11月, 2010 1 次提交
  33. 29 9月, 2010 1 次提交
    • J
      6941395: G1: Use only lock-free versions of region stack push() and pop() · 30fe6365
      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
      30fe6365
  34. 28 5月, 2010 1 次提交
  35. 23 4月, 2010 1 次提交
  36. 06 4月, 2010 1 次提交
    • T
      6940310: G1: MT-unsafe calls to CM::region_stack_push() / CM::region_stack_pop() · 1bf17034
      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
      1bf17034
  37. 31 3月, 2010 1 次提交
  38. 04 3月, 2010 1 次提交
  39. 07 10月, 2009 1 次提交