1. 05 3月, 2011 1 次提交
  2. 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
  3. 09 2月, 2011 1 次提交
  4. 08 2月, 2011 2 次提交
    • S
      7014851: Remove unused parallel compaction code · 2b4c6b63
      stefank 提交于
      Summary: Removed.
      Reviewed-by: jcoomes, brutisso
      2b4c6b63
    • 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
  5. 04 2月, 2011 2 次提交
  6. 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
  7. 02 2月, 2011 1 次提交
  8. 01 2月, 2011 1 次提交
    • T
      7014679: G1: deadlock during concurrent cleanup · a54411a3
      tonyp 提交于
      Summary: There's a potential deadlock between the concurrent cleanup thread and the GC workers that are trying to allocate and waiting for more free regions to be made available.
      Reviewed-by: iveresov, jcoomes
      a54411a3
  9. 28 1月, 2011 1 次提交
  10. 26 1月, 2011 2 次提交
    • T
      7014261: G1: RSet-related failures · 1498a56a
      tonyp 提交于
      Summary: A race between the concurrent cleanup thread and the VM thread while it is processing the "expanded sparse table list" causes both threads to try to free the same sparse table entry and either causes one of the threads to fail or leaves the entry in an inconsistent state. The solution is purge all entries on the expanded list that correspond go regions that are being cleaned up.
      Reviewed-by: brutisso, johnc
      1498a56a
    • J
      6608385: G1: need to support parallel reference processing · 477822c8
      johnc 提交于
      Summary: Implement support for ParallelRefProcEnabled in the reference processing that takes place at the end of G1 concurrent marking.
      Reviewed-by: tonyp, ysr
      477822c8
  11. 22 1月, 2011 1 次提交
    • T
      7013718: G1: small fixes for two assert/guarantee failures · d2d605ca
      tonyp 提交于
      Summary: Two small fixes to deal with a guarantee failure (the marking thread should join the SuspendibleThreadSet before calling a method that does pause prediction work so that said method is never called during a pause) and an assert failure (an assert is too strong).
      Reviewed-by: iveresov, johnc
      d2d605ca
  12. 20 1月, 2011 2 次提交
    • 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
    • K
      7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220) · 0457abfb
      kamg 提交于
      Summary: Rebuild breakpoint cache at gc_epilogue instead of during oops_do
      Reviewed-by: dcubed, ysr, coleenp
      0457abfb
  13. 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
  14. 14 1月, 2011 1 次提交
  15. 13 1月, 2011 3 次提交
    • B
      6941122: G1: UseLargePages does not work with G1 garbage collector · b1ff61c0
      brutisso 提交于
      Summary: Pass the value of UseLargePages instead of false as the "large" parameter when reserving the G1 heap.
      Reviewed-by: tonyp, johnc, phh
      b1ff61c0
    • T
      6994297: G1: do first-level slow-path allocations with a CAS · 302ddaef
      tonyp 提交于
      Summary: First attempt to allocate out the current alloc region using a CAS instead of taking the Heap_lock (first level of G1's slow allocation path). Only if that fails and it's necessary to replace the current alloc region take the Heap_lock (that's the second level of G1's slow allocation path).
      Reviewed-by: johnc, brutisso, ysr
      302ddaef
    • 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
  16. 11 1月, 2011 1 次提交
  17. 07 1月, 2011 1 次提交
  18. 20 12月, 2010 1 次提交
  19. 18 12月, 2010 2 次提交
    • Y
      6807801: CMS: could save/restore fewer header words during scavenge · 8ea00085
      ysr 提交于
      Summary: Age bits need not enter the mark-word preservation calculus; also affected, in addition to CMS, per CR synopsis above, were ParNew (but not DefNew), ParallelScavenge and G1, albeit to a lesser degree than CMS.
      Reviewed-by: tonyp, johnc
      8ea00085
    • J
      7006113: G1: Initialize ReferenceProcessor::_is_alive_non_header field · a2d29d26
      johnc 提交于
      Summary: Initialize the _is_alive_non_header field of G1's reference processor with an instance of the G1CMIsAliveClosure. This will stop adding reference objects with live referents to the discovered reference lists unnecessarily.
      Reviewed-by: tonyp, ysr, jwilhelm, brutisso
      a2d29d26
  20. 15 12月, 2010 1 次提交
    • T
      7000559: G1: assertion failure !outer || (full_collections_started ==... · 49b4b500
      tonyp 提交于
      7000559: G1: assertion failure !outer || (full_collections_started == _full_collections_completed + 1)
      Summary: The concurrent marking thread can complete its operation and increment the full GC counter during a Full GC. This causes the nesting of increments to the start and end of Full GCs that we are expecting to be wrong. the fix is for the marking thread to join the suspendible thread set before incrementing the counter so that it's blocked until the Full GC (or any other safepoint) is finished. The change also includes some minor code cleanup (I renamed a parameter).
      Reviewed-by: brutisso, ysr
      49b4b500
  21. 10 12月, 2010 1 次提交
  22. 08 12月, 2010 2 次提交
    • Y
      7001033: assert(gch->gc_cause() == GCCause::_scavenge_alot ||... · 8be7836d
      ysr 提交于
      7001033: assert(gch->gc_cause() == GCCause::_scavenge_alot || !gch->incremental_collection_failed())
      7002546: regression on SpecJbb2005 on 7b118 comparing to 7b117 on small heaps
      Summary: Relaxed assertion checking related to incremental_collection_failed flag to allow for ExplicitGCInvokesConcurrent behaviour where we do not want a failing scavenge to bail to a stop-world collection. Parameterized incremental_collection_will_fail() so we can selectively use, or not use, as appropriate, the statistical prediction at specific use sites. This essentially reverts the scavenge bail-out logic to what it was prior to some recent changes that had inadvertently started using the statistical prediction which can be noisy in the presence of bursty loads. Added some associated verbose non-product debugging messages.
      Reviewed-by: johnc, tonyp
      8be7836d
    • T
      6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen · ca3e35c8
      tonyp 提交于
      Summary: Allow the eden to the expanded up to a point when the GC locker is active.
      Reviewed-by: jwilhelm, johnc, ysr, jcoomes
      ca3e35c8
  23. 03 12月, 2010 1 次提交
  24. 02 12月, 2010 1 次提交
  25. 01 12月, 2010 1 次提交
  26. 24 11月, 2010 1 次提交
  27. 17 11月, 2010 2 次提交
    • 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
    • Y
      7000578: CMS: assert(SafepointSynchronize::is_at_safepoint()) failed: Else races are possible · 3e22a1c3
      ysr 提交于
      Summary: Weakened assert in onj_is_alive() to allow its use at initialization time when is_at_safepoint() normally reports false; added some related asserts to check order of is_init_completed() after Universe::is_fully_initialized().
      Reviewed-by: jcoomes
      3e22a1c3
  28. 10 11月, 2010 1 次提交
  29. 06 11月, 2010 1 次提交
    • Y
      6997298: fatal error: must own lock CMS_markBitMap_lock during heap dump · 385dacb7
      ysr 提交于
      Summary: Since we are at a stop-world pause, the existing CMS-phase checks are sufficient for safety, and the locking check can be safely elided. Elaborated documentation comment to the case where class unloading and verification are disabled, and the query happens when we aren't in the sweeping phase, where the answer "false" would be (almost everywhere) too pessimistic.
      Reviewed-by: jmasa, johnc, tonyp
      385dacb7
  30. 24 10月, 2010 1 次提交
  31. 22 10月, 2010 1 次提交
    • Y
      6992998: CMSWaitDuration=0 causes hangs with +ExplicitGCInvokesConcurrent · 41f9c77a
      ysr 提交于
      Summary: Closed a timing hole during which concurrent full gc requests can be missed. The hole can increase the latency of the response to a full gc request by up to the value of CMSWaitDuration. If CMSWaitDuration=0 is, as currently, interpreted as an unbounded wait, suitable in certain tuning scenarios, the application can potentially hang. Made two obscure tunables, including CMSWaitDuration, manageable.
      Reviewed-by: jcoomes, tonyp
      41f9c77a