1. 16 3月, 2012 1 次提交
  2. 14 3月, 2012 1 次提交
    • J
      7143511: G1: Another instance of high GC Worker Other time (50ms) · 26afc937
      johnc 提交于
      Summary: Tiered compilation has increased the number of nmethods in the code cache. This has, in turn, significantly increased the number of marked nmethods processed during the StrongRootsScope destructor. Create a specialized version of CodeBlobToOopClosure for G1 which places only those nmethods that contain pointers into the collection set on to the marked nmethods list.
      Reviewed-by: iveresov, tonyp
      26afc937
  3. 13 3月, 2012 1 次提交
    • J
      7147724: G1: hang in SurrogateLockerThread::manipulatePLL · f0980866
      johnc 提交于
      Summary: Attempting to initiate a marking cycle when allocating a humongous object can, if a marking cycle is successfully initiated by another thread, result in the allocating thread spinning until the marking cycle is complete. Eliminate a deadlock between the main ConcurrentMarkThread, the SurrogateLocker thread, the VM thread, and a mutator thread waiting on the SecondaryFreeList_lock (while free regions are going to become available) by not manipulating the pending list lock during the prologue and epilogue of the cleanup pause.
      Reviewed-by: brutisso, jcoomes, tonyp
      f0980866
  4. 16 2月, 2012 1 次提交
    • T
      7132029: G1: mixed GC phase lasts for longer than it should · 33a49849
      tonyp 提交于
      Summary: Revamp of the mechanism that chooses old regions for inclusion in the CSet. It simplifies the code and introduces min and max bounds on the number of old regions added to the CSet at each mixed GC to avoid pathological cases. It also ensures that when we do a mixed GC we'll always find old regions to add to the CSet (i.e., it eliminates the case where a mixed GC will collect no old regions which can happen today).
      Reviewed-by: johnc, brutisso
      33a49849
  5. 01 2月, 2012 1 次提交
  6. 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
  7. 14 2月, 2012 1 次提交
  8. 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
  9. 24 1月, 2012 1 次提交
    • B
      7132311: G1: assert((s == klass->oop_size(this)) ||... · 7864cfc8
      brutisso 提交于
      7132311: G1: assert((s == klass->oop_size(this)) || (Universe::heap()->is_gc_active() && ((is_typeArray()...
      Summary: Move the check for when to call collect() to before we do a humongous object allocation
      Reviewed-by: stefank, tonyp
      7864cfc8
  10. 21 1月, 2012 1 次提交
  11. 18 1月, 2012 1 次提交
  12. 17 1月, 2012 1 次提交
  13. 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
  14. 10 1月, 2012 1 次提交
  15. 07 1月, 2012 1 次提交
  16. 24 12月, 2011 1 次提交
  17. 05 1月, 2012 1 次提交
    • T
      7113006: G1: excessive ergo output when an evac failure happens · c182ec48
      tonyp 提交于
      Summary: Introduce a flag that is set when a heap expansion attempt during a GC fails so that we do not consantly attempt to expand the heap when it's going to fail anyway. This not only prevents the excessive ergo output (which is generated when a region allocation fails) but also avoids excessive and ultimately unsuccessful expansion attempts.
      Reviewed-by: jmasa, johnc
      c182ec48
  18. 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
  19. 16 12月, 2011 1 次提交
    • T
      7113012: G1: rename not-fully-young GCs as "mixed" · cac942d6
      tonyp 提交于
      Summary: Renamed partially-young GCs as mixed and fully-young GCs as young. Change all external output that includes those terms (GC log and GC ergo log) as well as any comments, fields, methods, etc. The changeset also includes very minor code tidying up (added some curly brackets).
      Reviewed-by: johnc, brutisso
      cac942d6
  20. 15 12月, 2011 2 次提交
  21. 14 12月, 2011 1 次提交
    • S
      7121373: Clean up CollectedHeap::is_in · dce4ac5f
      stefank 提交于
      Summary: Fixed G1CollectedHeap::is_in, added tests, cleaned up comments and made Space::is_in pure virtual.
      Reviewed-by: brutisso, tonyp, jcoomes
      dce4ac5f
  22. 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
  23. 08 11月, 2011 2 次提交
  24. 24 10月, 2011 1 次提交
    • J
      7096030: G1: PrintGCDetails enhancements · 15519f74
      johnc 提交于
      7102445: G1: Unnecessary Resource allocations during RSet scanning
      Summary: Add a new per-worker thread line in the PrintGCDetails output. GC Worker Other is the difference between the elapsed time for the parallel phase of the evacuation pause and the sum of the times of the sub-phases (external root scanning, mark stack scanning, RSet updating, RSet scanning, object copying, and termination) for that worker. During RSet scanning, stack allocate DirtyCardToOopClosure objects; allocating these in a resource area was causing abnormally high GC Worker Other times while the worker thread freed ResourceArea chunks.
      Reviewed-by: tonyp, jwilhelm, brutisso
      15519f74
  25. 18 10月, 2011 1 次提交
  26. 14 10月, 2011 1 次提交
    • T
      7088680: G1: Cleanup in the G1CollectorPolicy class · a299c2e7
      tonyp 提交于
      Summary: Removed unused fields and methods, removed the G1CollectoryPolicy_BestRegionsFirst class and folded its functionality into the G1CollectorPolicy class.
      Reviewed-by: ysr, brutisso, jcoomes
      a299c2e7
  27. 05 10月, 2011 1 次提交
  28. 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
  29. 29 9月, 2011 1 次提交
    • J
      7086533: G1: assert(!_g1->is_obj_dead(obj)): We should not be preserving dead... · c908a927
      johnc 提交于
      7086533: G1: assert(!_g1->is_obj_dead(obj)): We should not be preserving dead objs: g1CollectedHeap.cpp:3835
      Summary: Some objects may not be marked in the event of an evacuation failure in a partially young GC, during a marking cycle. Avoid this situation by not allowing partially young GCs during a marking cycle.
      Reviewed-by: tonyp, ysr, brutisso
      c908a927
  30. 24 9月, 2011 1 次提交
  31. 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
  32. 21 9月, 2011 1 次提交
    • J
      7092412: G1: Some roots not marked during an initial mark that gets an evacuation failure · 279b083d
      johnc 提交于
      Summary: As a result of the changes for 7080389, an evacuation failure during an initial mark pause may result in some root objects not being marked. Pass whether the caller is a root scanning closure into the evacuation failure handling code so that the thread that successfully forwards an object to itself also marks the object.
      Reviewed-by: ysr, brutisso, tonyp
      279b083d
  33. 08 9月, 2011 3 次提交
    • B
      6929868: G1: introduce min / max young gen size bounds · 499845d6
      brutisso 提交于
      Summary: Make G1 handle young gen size command line flags more consistently
      Reviewed-by: tonyp, jwilhelm
      499845d6
    • T
      7084509: G1: fix inconsistencies and mistakes in the young list target length calculations · 389cad56
      tonyp 提交于
      Summary: Fixed inconsistencies and mistakes in the young list target length calculations so that a) the calculated target length is optimal (before, it was not), b) other parameters like max survivor size and max gc locker eden expansion are always consistent with the calculated target length (before, they were not always), and c) the resulting target length was always bound by desired min and max values (before, it was not).
      Reviewed-by: brutisso, johnc
      389cad56
    • T
      7050392: G1: Introduce flag to generate a log of the G1 ergonomic decisions · e4a3f7b0
      tonyp 提交于
      Summary: It introduces ergonomic decision logging in G1 for the following heuristics: heap sizing, collection set construction, concurrent cycle initiation, and partially-young GC start/end. The code has a bit of refactoring in a few places to make the decision logging possible. It also replaces alternative ad-hoc logging that we have under different parameters and switches (G1_DEBUG, G1PolicyVerbose).
      Reviewed-by: johnc, ysr
      e4a3f7b0
  34. 01 9月, 2011 1 次提交
  35. 30 8月, 2011 1 次提交
  36. 23 8月, 2011 1 次提交