1. 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
  2. 20 4月, 2011 1 次提交
    • T
      7011855: G1: non-product flag to artificially grow the heap · dfbf6345
      tonyp 提交于
      Summary: It introduces non-product cmd line parameter G1DummyRegionsPerGC which indicates how many "dummy" regions to allocate at the end of each GC. This allows the G1 heap to grow artificially and makes concurrent marking cycles more frequent irrespective of what the application that is running is doing. The dummy regions will be found totally empty during cleanup so this parameter can also be used to stress the concurrent cleanup operation.
      Reviewed-by: brutisso, johnc
      dfbf6345
  3. 08 4月, 2011 1 次提交
    • J
      7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error · 6f87c7dd
      johnc 提交于
      Summary: A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.
      Reviewed-by: kvn, iveresov, never, tonyp, dholmes
      6f87c7dd
  4. 19 2月, 2011 1 次提交
  5. 05 4月, 2011 1 次提交
  6. 29 3月, 2011 1 次提交
    • J
      7026932: G1: No need to abort VM when card count cache expansion fails · 65085e41
      johnc 提交于
      Summary: Manage allocation/freeing of the card cache counts and epochs arrays directly so that an allocation failure while attempting to expand these arrays does not abort the JVM. Failure to expand these arrays is not fatal.
      Reviewed-by: iveresov, tonyp
      65085e41
  7. 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
  8. 26 1月, 2011 1 次提交
  9. 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
  10. 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
  11. 24 11月, 2010 1 次提交
  12. 13 10月, 2010 1 次提交
  13. 28 5月, 2010 1 次提交
  14. 25 5月, 2010 1 次提交
  15. 23 4月, 2010 1 次提交
  16. 16 4月, 2010 1 次提交
  17. 03 4月, 2010 1 次提交
  18. 31 3月, 2010 1 次提交
    • T
      6937160: G1: should observe GCTimeRatio · ba4ccdf3
      tonyp 提交于
      Summary: Remove the G1GCPercent parameter, that specifies the desired GC overhead percentage in G1, and observe the GCTimeRatio parameter instead.
      Reviewed-by: jmasa, johnc
      ba4ccdf3
  19. 25 2月, 2010 1 次提交
  20. 24 2月, 2010 3 次提交
  21. 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
  22. 27 1月, 2010 1 次提交
  23. 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
  24. 20 11月, 2009 2 次提交
    • Y
      6902303: G1: ScavengeALot should cause an incremental, rather than a full, collection · bef9ec13
      ysr 提交于
      Summary: ScavengeALot now causes an incremental (but possibly partially young, in the G1 sense) collection. Some such collections may be abandoned on account of MMU specs. Band-aided a native leak associated with abandoned pauses, as well as an MMU tracker overflow related to frequent scavenge events in the face of a large MMU denominator interval; the latter is protected by a product flag that defaults to false.
      Reviewed-by: tonyp
      bef9ec13
    • Y
      6902701: G1: protect debugging code related to 6898948 with a debug flag · df890d3a
      ysr 提交于
      Summary: Protected stats dump with a new develop flag; other than for the dump, reconciled product and non-product behaviour in face of the error.
      Reviewed-by: tonyp
      df890d3a
  25. 01 10月, 2009 1 次提交
  26. 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
  27. 31 7月, 2009 1 次提交
  28. 31 8月, 2009 1 次提交
  29. 20 8月, 2009 1 次提交
    • T
      6871111: G1: remove the concurrent overhead tracker · 228aaca7
      tonyp 提交于
      Summary: Removing the concurrent overhead tracker from G1, along with the GC overhead reporter and the G1AccountConcurrentOverhead (both of which rely on the the concurrent overhead tracker).
      Reviewed-by: iveresov, johnc
      228aaca7
  30. 31 7月, 2009 1 次提交
    • T
      6866591: G1: print update buffer processing stats more often · 0fbbce22
      tonyp 提交于
      Summary: It adds parameter -XX:+G1SummarizeRSetStatsPeriod that causes update buffer processing information to be printed periodically. It also includes two small formatting changes.
      Reviewed-by: jmasa, jcoomes, ysr
      0fbbce22
  31. 29 7月, 2009 1 次提交
  32. 15 7月, 2009 1 次提交
  33. 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
  34. 01 5月, 2009 1 次提交
  35. 24 4月, 2009 1 次提交
  36. 26 3月, 2009 1 次提交
  37. 16 3月, 2009 1 次提交