1. 22 8月, 2012 1 次提交
    • J
      7185699: G1: Prediction model discrepancies · 4e8955cf
      johnc 提交于
      Summary: Correct the result value of G1CollectedHeap::pending_card_num(). Change the code that calculates the GC efficiency of a non-young heap region to use historical data from mixed GCs and the actual number of live bytes when predicting how long it would take to collect the region. Changes were also reviewed by Thomas Schatzl.
      Reviewed-by: azeemj, brutisso
      4e8955cf
  2. 12 7月, 2012 1 次提交
  3. 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
  4. 01 6月, 2012 1 次提交
  5. 14 5月, 2012 1 次提交
    • B
      7161545: G1: Minor cleanups to the G1 logging · 3c2bae90
      brutisso 提交于
      Summary: Rename "to-space-overflow" to "to-space-exhausted", Introduce one decimal point in the size format, Add Sum to the aggregate and re-order the entries, Add number of GC workers to the log output
      Reviewed-by: johnc, jwilhelm
      3c2bae90
  6. 19 4月, 2012 1 次提交
    • T
      7145441: G1: collection set chooser-related cleanup · 0c52c8e5
      tonyp 提交于
      Summary: Cleanup of the CSet chooser class: standardize on uints for region num and indexes (instead of int, jint, etc.), make the method / field naming style more consistent, remove a lot of dead code.
      Reviewed-by: johnc, brutisso
      0c52c8e5
  7. 18 4月, 2012 1 次提交
  8. 06 4月, 2012 1 次提交
  9. 27 3月, 2012 1 次提交
  10. 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
  11. 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
  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. 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
  14. 17 1月, 2012 1 次提交
  15. 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
  16. 22 12月, 2011 1 次提交
  17. 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
  18. 21 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. 29 11月, 2011 1 次提交
    • J
      7114303: G1: assert(_g1->mark_in_progress()) failed: shouldn't be here otherwise · 4fd871ca
      johnc 提交于
      Summary: Race between the VM thread reading G1CollectedHeap::_mark_in_progress and it being set by the concurrent mark thread when concurrent marking is aborted by a full GC. Have the concurrent mark thread join the SuspendibleThreadSet before changing the marking state.
      Reviewed-by: tonyp, brutisso
      4fd871ca
  21. 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
  22. 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
  23. 24 9月, 2011 1 次提交
  24. 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
  25. 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
  26. 22 8月, 2011 1 次提交
  27. 19 8月, 2011 1 次提交
  28. 12 8月, 2011 1 次提交
  29. 10 8月, 2011 1 次提交
  30. 19 11月, 2011 1 次提交
  31. 02 8月, 2011 1 次提交
    • J
      7068240: G1: Long "parallel other time" and "ext root scanning" when running specific benchmark · 519da0f6
      johnc 提交于
      Summary: In root processing, move the scanning of the reference processor's discovered lists to before RSet updating and scanning. When scanning the reference processor's discovered lists, use a buffering closure so that the time spent copying any reference object is correctly attributed. Also removed a couple of unused and irrelevant timers.
      Reviewed-by: ysr, jmasa
      519da0f6
  32. 09 6月, 2011 1 次提交
  33. 23 3月, 2011 1 次提交
    • B
      6948149: G1: Imbalance in termination times · 8c38c653
      brutisso 提交于
      Summary: Changed default value of WorkStealingYieldsBeforeSleep from 1000 to 5000. Added more information to G1 pause logging.
      Reviewed-by: jwilhelm, tonyp, jmasa
      8c38c653
  34. 08 12月, 2010 1 次提交
  35. 24 11月, 2010 1 次提交
  36. 25 8月, 2010 1 次提交
    • T
      6974966: G1: unnecessary direct-to-old allocations · 41dac17c
      tonyp 提交于
      Summary: This change revamps the slow allocation path of G1. Improvements include the following: a) Allocations directly to old regions are now totally banned. G1 now only allows allocations out of young regions (with the only exception being humongous regions). b) The thread that allocates a new region (which is now guaranteed to be young) does not dirty all its cards. Each thread that successfully allocates out of a young region is now responsible for dirtying the cards that corresponding to the "block" that just got allocated. c) allocate_new_tlab() and mem_allocate() are now implemented differently and TLAB allocations are only done by allocate_new_tlab(). d) If a thread schedules an evacuation pause in order to satisfy an allocation request, it will perform the allocation at the end of the safepoint so that the thread that initiated the GC also gets "first pick" of any space made available by the GC. e) If a thread is unable to allocate a humongous object it will schedule an evacuation pause in case it reclaims enough regions so that the humongous allocation can be satisfied aftewards. f) The G1 policy is more careful to set the young list target length to be the survivor number +1. g) Lots of code tidy up, removal, refactoring to make future changes easier.
      Reviewed-by: johnc, ysr
      41dac17c
  37. 05 8月, 2010 1 次提交
    • T
      6963209: G1: remove the concept of abandoned pauses · e49283a2
      tonyp 提交于
      Summary: As part of 6944166 we disabled the concept of abandoned pauses (i.e., if the collection set is empty, we would still try to do a pause even if it is to update the RSets and scan the roots). This changeset removes the code and structures associated with abandoned pauses.
      Reviewed-by: iveresov, johnc
      e49283a2
  38. 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