1. 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
  2. 05 6月, 2013 1 次提交
  3. 28 5月, 2013 1 次提交
    • T
      8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen · 1c4e2ca8
      tschatzl 提交于
      Summary: Fixed the output of G1SummarizeRSetStats: too small datatype for the number of concurrently processed cards, added concurrent remembered set thread time retrieval for Linux and Windows (BSD uses os::elapsedTime() now), and other cleanup. The information presented during VM operation is now relative to the previous output, not always cumulative if G1SummarizeRSetStatsPeriod > 0. At VM exit, the code prints a cumulative summary.
      Reviewed-by: johnc, jwilhelm
      1c4e2ca8
  4. 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
  5. 19 4月, 2013 1 次提交
  6. 02 9月, 2012 1 次提交
  7. 23 8月, 2012 1 次提交
  8. 20 7月, 2012 1 次提交
  9. 12 7月, 2012 1 次提交
  10. 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
  11. 27 1月, 2012 1 次提交
    • J
      7133038: G1: Some small profile based optimizations · b2b3a5ba
      johnc 提交于
      Summary: Some minor profile based optimizations. Reduce the number of branches and branch mispredicts by removing some virtual calls, through closure specalization, and refactoring some conditional statements.
      Reviewed-by: brutisso, tonyp
      b2b3a5ba
  12. 15 12月, 2011 1 次提交
  13. 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
  14. 02 11月, 2011 1 次提交
  15. 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
  16. 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
  17. 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
  18. 10 8月, 2011 1 次提交
  19. 19 11月, 2011 1 次提交
  20. 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
  21. 09 6月, 2011 1 次提交
  22. 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
  23. 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
  24. 05 3月, 2011 1 次提交
  25. 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
  26. 24 11月, 2010 1 次提交
  27. 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
  28. 13 10月, 2010 1 次提交
  29. 21 9月, 2010 1 次提交
  30. 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
  31. 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
  32. 20 7月, 2010 1 次提交
  33. 28 5月, 2010 1 次提交
  34. 23 4月, 2010 1 次提交
  35. 24 2月, 2010 1 次提交
  36. 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
  37. 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
  38. 15 7月, 2009 1 次提交
  39. 19 5月, 2009 1 次提交
  40. 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