1. 25 6月, 2011 1 次提交
  2. 21 6月, 2011 1 次提交
  3. 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
  4. 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
  5. 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
  6. 30 4月, 2011 2 次提交
    • T
      7035144: G1: nightly failure: Non-dirty cards in region that should be dirty... · 086cc9b4
      tonyp 提交于
      7035144: G1: nightly failure: Non-dirty cards in region that should be dirty (failures still exist...)
      Summary: We should only undirty cards after we decide that they are not on a young region, not before. The fix also includes improvements to the verify_dirty_region() method which print out which cards were not found dirty.
      Reviewed-by: johnc, brutisso
      086cc9b4
    • 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
  7. 18 3月, 2011 1 次提交
  8. 05 3月, 2011 1 次提交
  9. 19 2月, 2011 1 次提交
  10. 05 4月, 2011 1 次提交
  11. 28 1月, 2011 1 次提交
  12. 26 1月, 2011 2 次提交
    • T
      7014261: G1: RSet-related failures · 1498a56a
      tonyp 提交于
      Summary: A race between the concurrent cleanup thread and the VM thread while it is processing the "expanded sparse table list" causes both threads to try to free the same sparse table entry and either causes one of the threads to fail or leaves the entry in an inconsistent state. The solution is purge all entries on the expanded list that correspond go regions that are being cleaned up.
      Reviewed-by: brutisso, johnc
      1498a56a
    • J
      6608385: G1: need to support parallel reference processing · 477822c8
      johnc 提交于
      Summary: Implement support for ParallelRefProcEnabled in the reference processing that takes place at the end of G1 concurrent marking.
      Reviewed-by: tonyp, ysr
      477822c8
  13. 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
  14. 19 1月, 2011 1 次提交
    • T
      7011379: G1: overly long concurrent marking cycles · c1c48661
      tonyp 提交于
      Summary: This changeset introduces filtering of SATB buffers at the point when they are about to be enqueued. If this filtering clears enough entries on each buffer, the buffer can then be re-used and not enqueued. This cuts down the number of SATB buffers that need to be processed by the concurrent marking threads.
      Reviewed-by: johnc, ysr
      c1c48661
  15. 11 1月, 2011 1 次提交
  16. 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
  17. 02 12月, 2010 1 次提交
  18. 24 11月, 2010 1 次提交
  19. 19 10月, 2010 1 次提交
    • J
      6988458: G1: assert(mr.end() <= _cm->finger()) failed: otherwise the region... · f0680241
      johnc 提交于
      6988458: G1: assert(mr.end() <= _cm->finger()) failed: otherwise the region shouldn't be on the stack
      Summary: The changes from 6941395 did not clear the CMTask::_aborted_region fields when concurrent marking aborted because of overflow. As a result, the next time around we could see a memory region whose start address was above the global finger and the assertion tripped. Moved the clearing of the aborted regions to ConcurrentMark::clear_marking_state, which is executed on all of the exit paths.
      Reviewed-by: tonyp, ysr, jmasa
      f0680241
  20. 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
  21. 21 9月, 2010 1 次提交
  22. 18 8月, 2010 1 次提交
    • T
      6975964: G1: print out a more descriptive message for evacuation failure when... · 2563f216
      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
      2563f216
  23. 28 5月, 2010 1 次提交
  24. 19 5月, 2010 1 次提交
  25. 06 4月, 2010 2 次提交
    • T
      6909756: G1: guarantee(G1CollectedHeap::heap()->mark_in_progress(),"Precondition.") · 524b2dd2
      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
      524b2dd2
    • 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
  26. 31 3月, 2010 1 次提交
  27. 19 3月, 2010 1 次提交
    • T
      6935821: G1: threads created during marking do not active their SATB queues · 9677603a
      tonyp 提交于
      Summary: Newly-created threads always had the active field of their SATB queue initialized to false, even if they were created during marking. As a result, updates from threads created during a marking cycle were never enqueued and never processed. The fix includes remaining a method from active() to is_active() for readability and naming consistency.
      Reviewed-by: ysr, johnc
      9677603a
  28. 18 3月, 2010 1 次提交
  29. 24 2月, 2010 2 次提交
  30. 17 12月, 2009 1 次提交
    • I
      6862387: tune concurrent refinement further · 7f92f7a2
      iveresov 提交于
      Summary: Reworked the concurrent refinement: threads activation, feedback-based threshold adjustment, other miscellaneous fixes.
      Reviewed-by: apetrusenko, tonyp
      7f92f7a2
  31. 22 10月, 2009 1 次提交
  32. 07 10月, 2009 2 次提交
  33. 03 10月, 2009 1 次提交
    • T
      6885041: G1: inconsistent thread dump · 510d088c
      tonyp 提交于
      Summary: When G1 is enabled, thread dumps are inconsistent as the info for some of the G1 threads is not formatted properly.
      Reviewed-by: ysr, johnc
      510d088c
  34. 01 10月, 2009 1 次提交
  35. 16 9月, 2009 1 次提交