1. 04 10月, 2011 1 次提交
    • J
      7097053: G1: assert(da ? referent->is_oop() : referent->is_oop_or_null())... · a5d76e84
      johnc 提交于
      7097053: G1: assert(da ? referent->is_oop() : referent->is_oop_or_null()) failed: referenceProcessor.cpp:1054
      Summary: During remembered set scanning, the reference processor could discover a reference object whose referent was in the process of being copied and so may not be completely initialized. Do not perform reference discovery during remembered set scanning.
      Reviewed-by: tonyp, ysr
      a5d76e84
  2. 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
  3. 22 6月, 2011 1 次提交
    • T
      7046182: G1: remove unnecessary iterations over the collection set · 76ac10c6
      tonyp 提交于
      Summary: Remove two unnecessary iterations over the collection set which are supposed to prepare the RSet's of the CSet regions for parallel iterations (we'll make sure this is done incrementally). I'll piggyback on this CR the removal of the G1_REM_SET_LOGGING code.
      Reviewed-by: brutisso, johnc
      76ac10c6
  4. 09 6月, 2011 1 次提交
  5. 30 4月, 2011 1 次提交
    • 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
  6. 03 3月, 2011 1 次提交
    • B
      7023747: G1: too strict assert in... · f734707b
      brutisso 提交于
      7023747: G1: too strict assert in RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr in g1RemSet.cpp
      Summary: Made sure that the assert looks at ParallelGCThreads.
      Reviewed-by: stefank, tonyp, jwilhelm, johnc
      f734707b
  7. 05 3月, 2011 1 次提交
  8. 03 2月, 2011 1 次提交
    • J
      6923430: G1: assert(res != 0,"This should have worked.") · a2031db9
      johnc 提交于
      7007446: G1: expand the heap with a single step, not one region at a time
      Summary: Changed G1CollectedHeap::expand() to expand the committed space by calling VirtualSpace::expand_by() once rather than for every region in the expansion amount. This allows the success or failure of the expansion to be determined before creating any heap regions. Introduced a develop flag G1ExitOnExpansionFailure (false by default) that, when true, will exit the VM if the expansion of the committed space fails. Finally G1CollectedHeap::expand() returns a status back to it's caller so that the caller knows whether to attempt the allocation.
      Reviewed-by: brutisso, tonyp
      a2031db9
  9. 24 11月, 2010 1 次提交
  10. 17 11月, 2010 1 次提交
    • J
      6978187: G1: assert(ParallelGCThreads> 1 || n_yielded() == _hrrs->occupied()) strikes again · 8d02802f
      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
      8d02802f
  11. 13 10月, 2010 1 次提交
  12. 21 9月, 2010 1 次提交
  13. 07 8月, 2010 1 次提交
    • J
      6930581: G1: assert(ParallelGCThreads > 1 || n_yielded() ==... · d0aa394b
      johnc 提交于
      6930581: G1: assert(ParallelGCThreads > 1 || n_yielded() == _hrrs->occupied(),"Should have yielded all the ..
      Summary: During RSet updating, when ParallelGCThreads is zero, references that point into the collection set are added directly the referenced region's RSet. This can cause the sparse table in the RSet to expand. RSet scanning and the "occupied" routine will then operate on different instances of the sparse table causing the assert to trip. This may also cause some cards added post expansion to be missed during RSet scanning. When ParallelGCThreads is non-zero such references are recorded on the "references to be scanned" queue and the card containing the reference is recorded in a dirty card queue for use in the event of an evacuation failure. Employ the parallel code in the serial case to avoid expanding the RSets of regions in the collection set.
      Reviewed-by: iveresov, ysr, tonyp
      d0aa394b
  14. 03 8月, 2010 1 次提交
    • J
      6814437: G1: remove the _new_refs array · 64711cc9
      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
      64711cc9
  15. 20 7月, 2010 1 次提交
  16. 28 5月, 2010 1 次提交
  17. 23 4月, 2010 1 次提交
  18. 24 2月, 2010 1 次提交
  19. 12 2月, 2010 1 次提交
    • I
      6923991: G1: improve scalability of RSet scanning · 88955d77
      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
      88955d77
  20. 05 8月, 2009 1 次提交
    • J
      6819077: G1: first GC thread coming late into the GC. · c046dd73
      johnc 提交于
      Summary: The first worker thread is delayed when entering the GC because it clears the card count table that is used in identifying hot cards. Replace the card count table with a dynamically sized evicting hash table that includes an epoch based counter.
      Reviewed-by: iveresov, tonyp
      c046dd73
  21. 15 7月, 2009 1 次提交
  22. 19 5月, 2009 1 次提交
  23. 12 5月, 2009 1 次提交
    • I
      6484957: G1: parallel concurrent refinement · 2c49aee0
      iveresov 提交于
      6826318: G1: remove traversal-based refinement code
      Summary: Removed traversal-based refinement code as it's no longer used. Made the concurrent refinement (queue-based) parallel.
      Reviewed-by: tonyp
      2c49aee0
  24. 01 5月, 2009 1 次提交
  25. 28 4月, 2009 1 次提交
  26. 26 3月, 2009 1 次提交
  27. 22 3月, 2009 1 次提交
  28. 16 3月, 2009 2 次提交
  29. 10 3月, 2009 2 次提交
  30. 07 3月, 2009 1 次提交
  31. 06 2月, 2009 1 次提交
  32. 06 6月, 2008 1 次提交