You need to sign in or sign up before continuing.
  1. 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
  2. 09 6月, 2011 2 次提交
  3. 03 6月, 2011 1 次提交
    • Y
      7048782: CMS: assert(last_chunk_index_to_check<= last_chunk_index) failed:... · 30cee037
      ysr 提交于
      7048782: CMS: assert(last_chunk_index_to_check<= last_chunk_index) failed: parCardTableModRefBS.cpp:359
      Summary: The LNC array is sized before the start of a scavenge, while the heap may expand during a scavenge. With CMS, the last block of an arbitrary suffice of the LNC array may expand due to coalition with the expansion delta. We now take care not to attempt access past the end of the LNC array. LNC array code will be cleaned up and suitably encapsulated as part of the forthcoming performance RFE 7043675.
      Reviewed-by: brutisso
      30cee037
  4. 28 5月, 2011 1 次提交
    • Y
      7048342: CMS: eob == _limit || fc->isFree() failed: Only a free chunk should... · 5e28a367
      ysr 提交于
      7048342: CMS: eob == _limit || fc->isFree() failed: Only a free chunk should allow us to cross over the limit
      Summary: The freeness bit was being cleared in debug code when it shouldn't have been. Also removed unused FreeChunk methods linkAfterNonNull and clearPrev.
      Reviewed-by: brutisso
      5e28a367
  5. 24 5月, 2011 1 次提交
  6. 17 5月, 2011 1 次提交
    • J
      7041440: G1: assert(obj->is_oop_or_null(true )) failed: Error # · cb26465b
      johnc 提交于
      Summary: During an evacuation pause clear the region fields of any concurrent marking task whose local finger points into the collection set as the values in the region fields will become stale. Clearing these fields causes the concurrent mark task to claim a new region when marking restarts after the pause.
      Reviewed-by: tonyp, iveresov
      cb26465b
  7. 13 5月, 2011 1 次提交
  8. 12 5月, 2011 1 次提交
  9. 10 5月, 2011 1 次提交
    • Y
      6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field... · 01b28013
      ysr 提交于
      6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
      Summary: Fixed process_chunk_boundaries(), used for parallel card scanning when using ParNew/CMS, so as to prevent double-scanning, or worse, non-scanning of imprecisely marked objects exceeding parallel chunk size. Made some sizing parameters for parallel card scanning diagnostic, disabled ParallelGCRetainPLAB, and elaborated and clarified some comments.
      Reviewed-by: stefank, johnc
      01b28013
  10. 05 5月, 2011 2 次提交
  11. 04 5月, 2011 1 次提交
  12. 30 4月, 2011 2 次提交
    • 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
    • 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
  13. 27 4月, 2011 1 次提交
    • Y
      7039089: G1: changeset for 7037276 broke heap verification, and related cleanups · cdee9464
      ysr 提交于
      Summary: In G1 heap verification, we no longer scan perm to G1-collected heap refs as part of process_strong_roots() but rather in a separate explicit oop iteration over the perm gen. This preserves the original perm card-marks. Added a new assertion in younger_refs_iterate() to catch a simple subcase where the user may have forgotten a prior save_marks() call, as happened in the case of G1's attempt to iterate perm to G1 refs when verifying the heap before exit. The assert was deliberately weakened for ParNew+CMS and will be fixed for that combination in a future CR. Also made some (non-G1) cleanups related to code and comments obsoleted by the migration of Symbols to the native heap.
      Reviewed-by: iveresov, jmasa, tonyp
      cdee9464
  14. 22 4月, 2011 1 次提交
  15. 21 4月, 2011 1 次提交
  16. 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
  17. 16 4月, 2011 1 次提交
  18. 15 4月, 2011 1 次提交
    • Y
      7036482: clear argument is redundant and unused in cardtable methods · 1a2f9848
      ysr 提交于
      Summary: Removed the unused clear argument to various cardtbale methods and unused mod_oop_in_space_iterate method. Unrelated to synopsis, added  a pair of clarifying parens in AllocationStats constructor.
      Reviewed-by: brutisso, jcoomes
      1a2f9848
  19. 08 4月, 2011 2 次提交
    • J
      6841742: par compact - remove unused/unsupported options · 44f5f047
      jcoomes 提交于
      Summary: ignore UseParallel{OldGCDensePrefix,OldGCCompacting,DensePrefixUpdate}
      Reviewed-by: jwilhelm, brutisso
      44f5f047
    • 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
  20. 06 4月, 2011 1 次提交
  21. 23 3月, 2011 1 次提交
  22. 18 3月, 2011 1 次提交
  23. 15 3月, 2011 1 次提交
  24. 11 3月, 2011 1 次提交
  25. 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
  26. 04 3月, 2011 1 次提交
  27. 05 3月, 2011 1 次提交
  28. 02 3月, 2011 1 次提交
    • I
      6627983: G1: Bad oop deference during marking · b9091f37
      iveresov 提交于
      Summary: Bulk zeroing reduction didn't work with G1, because arraycopy would call pre-barriers on uninitialized oops. The solution is to have version of arraycopy stubs that don't have pre-barriers. Also refactored arraycopy stubs generation on SPARC to be more readable and reduced the number of stubs necessary in some cases.
      Reviewed-by: jrose, kvn, never
      b9091f37
  29. 01 3月, 2011 1 次提交
    • J
      7022200: G1: optimized build broken · 34dac2c7
      johnc 提交于
      Summary: Make the G1 specific version of is_in_closed_subset() available in all builds.
      Reviewed-by: tonyp, jcoomes
      34dac2c7
  30. 19 2月, 2011 1 次提交
  31. 05 4月, 2011 2 次提交
  32. 30 3月, 2011 2 次提交
  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. 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