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. 01 8月, 2013 1 次提交
  3. 25 6月, 2013 1 次提交
  4. 05 6月, 2013 1 次提交
  5. 19 9月, 2012 1 次提交
  6. 02 9月, 2012 1 次提交
  7. 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
  8. 20 7月, 2012 1 次提交
  9. 26 4月, 2012 1 次提交
    • J
      7143490: G1: Remove HeapRegion::_top_at_conc_mark_count · 7b83234d
      johnc 提交于
      Summary: Removed the HeapRegion::_top_at_conc_mark_count field. It is no longer needed as a result of the changes for 6888336 and 7127706. Refactored the closures that finalize and verify the liveness counting data so that common functionality was placed into a base class.
      Reviewed-by: brutisso, tonyp
      7b83234d
  10. 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
  11. 18 4月, 2012 1 次提交
  12. 16 4月, 2012 1 次提交
  13. 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
  14. 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
  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. 21 12月, 2011 1 次提交
  17. 08 11月, 2011 1 次提交
  18. 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
  19. 05 10月, 2011 1 次提交
  20. 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
  21. 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
  22. 22 9月, 2011 1 次提交
  23. 12 8月, 2011 1 次提交
  24. 15 6月, 2011 1 次提交
    • J
      7004681: G1: Extend marking verification to Full GCs · 0e040a45
      johnc 提交于
      Summary: Perform a heap verification after the first phase of G1's full GC using objects' mark words to determine liveness. The third parameter of the heap verification routines, which was used in G1 to determine which marking bitmap to use in liveness calculations, has been changed from a boolean to an enum with values defined for using the mark word, and the 'prev' and 'next' bitmaps.
      Reviewed-by: tonyp, ysr
      0e040a45
  25. 11 6月, 2011 1 次提交
    • T
      7045330: G1: Simplify/fix the HeapRegionSeq class · f122f55f
      tonyp 提交于
      7042285: G1: native memory leak during humongous object allocation
      6804436: G1: heap region indices should be size_t
      Summary: A series of fixes and improvements to the HeapRegionSeq class: a) replace the _regions growable array with a standard C array, b) avoid de-allocating / re-allocating HeapRegion instances when the heap shrinks / grows (fix for 7042285), c) introduce fast method to map address to HeapRegion via a "biased" array pointer, d) embed the _hrs object in G1CollectedHeap, instead of pointing to it via an indirection, e) assume that all the regions added to the HeapRegionSeq instance are contiguous, f) replace int's with size_t's for indexes (and expand that to HeapRegion as part of 6804436), g) remove unnecessary / unused methods, h) rename a couple of fields (_alloc_search_start and _seq_bottom), i) fix iterate_from() not to always start from index 0 irrespective of the region passed to it, j) add a verification method to check the HeapRegionSeq assumptions, k) always call the wrappers for _hrs.iterate(), _hrs_length(), and _hrs.at() from G1CollectedHeap, not those methods directly, and l) unify the code that expands the sequence (by either re-using or creating a new HeapRegion) and make it robust wrt to a HeapRegion allocation failing.
      Reviewed-by: stefank, johnc, brutisso
      f122f55f
  26. 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
  27. 30 3月, 2011 1 次提交
    • T
      7023069: G1: Introduce symmetric locking in the slow allocation path · 10b871c9
      tonyp 提交于
      7023151: G1: refactor the code that operates on _cur_alloc_region to be re-used for allocs by the GC threads
      7018286: G1: humongous allocation attempts should take the GC locker into account
      Summary: First, this change replaces the asymmetric locking scheme in the G1 slow alloc path by a summetric one. Second, it factors out the code that operates on _cur_alloc_region so that it can be re-used for allocations by the GC threads in the future.
      Reviewed-by: stefank, brutisso, johnc
      10b871c9
  28. 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
  29. 13 1月, 2011 1 次提交
    • T
      7007068: G1: refine the BOT during evac failure handling · d205bb81
      tonyp 提交于
      Summary: During evacuation failure handling we refine the BOT to reflect the location of all the objects in the regions we scan. The changeset includes some minor cleanup: a) non-product print_on() method on the G1 BOT class, b) added more complete BOT verification during heap / region verification, c) slight modification to the BOT set up for humongous regions to be more consistent with the BOT set up during evac failure handling, and d) removed a couple of unused methods.
      Reviewed-by: johnc, ysr
      d205bb81
  30. 24 11月, 2010 1 次提交
  31. 17 10月, 2010 1 次提交
    • T
      6991377: G1: race between concurrent refinement and humongous object allocation · a9a0cccb
      tonyp 提交于
      Summary: There is a race between the concurrent refinement threads and the humongous object allocation that can cause the concurrent refinement threads to corrupt the part of the BOT that it is being initialized by the humongous object allocation operation. The solution is to do the humongous object allocation in careful steps to ensure that the concurrent refinement threads always have a consistent view over the BOT, region contents, and top. The fix includes some very minor tidying up in sparsePRT.
      Reviewed-by: jcoomes, johnc, ysr
      a9a0cccb
  32. 18 8月, 2010 1 次提交
  33. 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
  34. 20 7月, 2010 1 次提交
  35. 28 5月, 2010 1 次提交
  36. 15 5月, 2010 1 次提交
  37. 12 5月, 2010 1 次提交
  38. 23 4月, 2010 1 次提交
  39. 31 3月, 2010 1 次提交
  40. 03 10月, 2009 1 次提交
    • T
      6882730: G1: parallel heap verification messes up region dump · 7a16a15c
      tonyp 提交于
      Summary: It tidies up the G1 heap verification a bit. In particular, when the verification is done in parallel and there is a failure, this is propagated to the top level and the heap is dumped at the end, not by every thread that encounters a failure.
      Reviewed-by: johnc, jmasa
      7a16a15c