1. 24 3月, 2014 1 次提交
    • T
      8035406: Improve data structure for Code Cache remembered sets · 81f9110e
      tschatzl 提交于
      Summary: Change the code cache remembered sets data structure from a GrowableArray to a chunked list of nmethods. This makes the data structure more amenable to parallelization, and decreases freeing time.
      Reviewed-by: mgerdin, brutisso
      81f9110e
  2. 20 1月, 2014 1 次提交
    • T
      8027476: Improve performance of Stringtable unlink · 6dd06c68
      tschatzl 提交于
      8027455: Improve symbol table scan times during gc pauses
      Summary: Parallelize string table and symbol table scan during remark and full GC. Some additional statistics output if the experimental flag G1TraceStringSymbolTableScrubbing is set.
      Reviewed-by: mgerdin, coleenp, brutisso
      6dd06c68
  3. 15 8月, 2013 1 次提交
    • J
      7145569: G1: optimize nmethods scanning · d5c439d7
      johnc 提交于
      Summary: Add a list of nmethods to the RSet for a region that contain references into the region. Skip scanning the code cache during root scanning and scan the nmethod lists during RSet scanning instead.
      Reviewed-by: tschatzl, brutisso, mgerdin, twisti, kvn
      d5c439d7
  4. 01 8月, 2013 1 次提交
  5. 05 6月, 2013 1 次提交
  6. 10 5月, 2013 1 次提交
    • J
      7176479: G1: JVM crashes on T5-8 system with 1.5 TB heap · ec36d18f
      johnc 提交于
      Summary: Refactor G1's hot card cache and card counts table into their own files. Simplify the card counts table, including removing the encoding of the card index in each entry. The card counts table now has a 1:1 correspondence with the cards spanned by heap. Space for the card counts table is reserved from virtual memory (rather than C heap) during JVM startup and is committed/expanded when the heap is expanded. Changes were also reviewed-by Vitaly Davidovich.
      Reviewed-by: tschatzl, jmasa
      ec36d18f
  7. 22 2月, 2013 1 次提交
  8. 07 2月, 2013 1 次提交
  9. 16 1月, 2013 1 次提交
  10. 22 12月, 2012 1 次提交
    • J
      8001424: G1: Rename certain G1-specific flags · 323940a5
      johnc 提交于
      Summary: Rename G1DefaultMinNewGenPercent, G1DefaultMaxNewGenPercent, and G1OldCSetRegionLiveThresholdPercent to G1NewSizePercent, G1MaxNewSizePercent, and G1MixedGCLiveThresholdPercent respectively. The previous names are no longer accepted.
      Reviewed-by: brutisso, ysr
      323940a5
  11. 29 8月, 2012 1 次提交
    • J
      7041879: G1: introduce stress testing parameter to cause frequent evacuation failures · 3c3c2c12
      johnc 提交于
      Summary: Add the flags G1EvacuationFailureALot flag (and supporting flags) to force trigger evacuation failures. The support flags control how often to trigger an evacuation failure and during which types of evacuation pause. This functionality is analogous to that of PromotionFailureALot for the other collectors.
      Reviewed-by: brutisso
      3c3c2c12
  12. 23 8月, 2012 1 次提交
  13. 26 6月, 2012 1 次提交
  14. 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
  15. 13 4月, 2012 1 次提交
    • B
      7160728: Introduce an extra logging level for G1 logging · dd643c7f
      brutisso 提交于
      Summary: Added log levels "fine", "finer" and "finest". Let PrintGC map to "fine" and PrintGCDetails map to "finer". Separated out the per worker information in the G1 logging to the "finest" level.
      Reviewed-by: stefank, jwilhelm, tonyp, johnc
      dd643c7f
  16. 06 4月, 2012 1 次提交
  17. 23 3月, 2012 1 次提交
  18. 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
  19. 11 1月, 2012 1 次提交
  20. 22 12月, 2011 1 次提交
  21. 28 9月, 2011 1 次提交
  22. 09 9月, 2011 1 次提交
  23. 08 9月, 2011 1 次提交
    • 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
  24. 01 9月, 2011 1 次提交
  25. 22 8月, 2011 1 次提交
  26. 19 8月, 2011 1 次提交
  27. 19 11月, 2011 1 次提交
  28. 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
  29. 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
  30. 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
  31. 19 2月, 2011 1 次提交
  32. 05 4月, 2011 1 次提交
  33. 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
  34. 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
  35. 26 1月, 2011 1 次提交
  36. 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
  37. 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
  38. 24 11月, 2010 1 次提交
  39. 13 10月, 2010 1 次提交
  40. 28 5月, 2010 1 次提交