1. 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
  2. 12 9月, 2011 1 次提交
  3. 08 9月, 2011 1 次提交
    • Y
      4965777: GC changes to support use of discovered field for pending references · d5318109
      ysr 提交于
      Summary: If and when the reference handler thread is able to use the discovered field to link reference objects in its pending list, so will GC. In that case, GC will scan through this field once a reference object has been placed on the pending list, but not scan that field before that stage, as the field is used by the concurrent GC thread to link discovered objects. When ReferenceHandleR thread does not use the discovered field for the purpose of linking the elements in the pending list, as would be the case in older JDKs, the JVM will fall back to the old behaviour of using the next field for that purpose.
      Reviewed-by: jcoomes, mchung, stefank
      d5318109
  4. 01 9月, 2011 1 次提交
  5. 29 8月, 2011 1 次提交
  6. 17 8月, 2011 1 次提交
  7. 16 8月, 2011 1 次提交
  8. 07 7月, 2011 1 次提交
  9. 17 6月, 2011 1 次提交
  10. 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
  11. 24 5月, 2011 1 次提交
  12. 13 5月, 2011 1 次提交
  13. 12 5月, 2011 1 次提交
  14. 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
  15. 04 5月, 2011 2 次提交
  16. 29 4月, 2011 1 次提交
  17. 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
  18. 27 4月, 2011 2 次提交
    • Z
      7036747: 7017009 reappeared, problem with ElfStringTable · 2c79479b
      zgu 提交于
      Summary: Created new "new" operator for CHeapObj that allows malloc to fail without causing fatal error. Also replaced "HeapAllocate" with "os::malloc" in decoder code to allow decoder to handle low memory scenario.
      Reviewed-by: coleenp, dholmes
      2c79479b
    • 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
  19. 21 4月, 2011 1 次提交
  20. 18 4月, 2011 1 次提交
  21. 15 4月, 2011 2 次提交
  22. 06 4月, 2011 1 次提交
  23. 01 4月, 2011 1 次提交
  24. 23 3月, 2011 1 次提交
  25. 19 3月, 2011 2 次提交
  26. 18 3月, 2011 1 次提交
  27. 17 3月, 2011 1 次提交
    • Y
      6896099: Integrate CMS heap ergo with default heap sizing ergo · 394e03cc
      ysr 提交于
      6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m
      7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification
      7027529: CMS: retire CMSUseOldDefaults flag
      Summary: Simplify CMS heap sizing code, relying on ergonomic initial sizing consistent with other collectors for the most part, controlling only young gen sizing to rein in pause times. Make CMS young gen sizing default statically cpu-dependant. Remove inconsistencies wrt generation sizing and policy code, allowing for the fixing for 6627787 and 7000125. For 7027529, retire the flag CMSUseOldDefaults which had been introduced as a bridge from JDK 5 to JDK 6 a number of years ago.
      Reviewed-by: brutisso, poonam
      394e03cc
  28. 10 3月, 2011 1 次提交
  29. 02 3月, 2011 2 次提交
    • K
      6878713: Verifier heap corruption, relating to backward jsrs · 0898592e
      kamg 提交于
      Summary: Added overflow detection in arena Amalloc methods
      Reviewed-by: coleenp, phh
      0898592e
    • 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
  30. 21 2月, 2011 1 次提交
  31. 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
  32. 25 3月, 2011 1 次提交
    • Y
      7029036: Card-table verification hangs with all framework collectors, except... · 0c37f5bb
      ysr 提交于
      7029036: Card-table verification hangs with all framework collectors, except G1, even before the first GC
      Summary: When verifying clean card ranges, use memory-range-bounded iteration over oops of objects overlapping that range, thus avoiding the otherwise quadratic worst-case cost of scanning large object arrays.
      Reviewed-by: jmasa, jwilhelm, tonyp
      0c37f5bb
  33. 11 2月, 2011 2 次提交
  34. 08 2月, 2011 1 次提交
    • Y
      6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?") · 251d4f53
      ysr 提交于
      Summary: Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause.
      Reviewed-by: jmasa, johnc
      251d4f53