# HG changeset patch # User poonam # Date 1219972676 25200 # Node ID 9223f5bb0bf734c6ce2067f0878407c0da698536 # Parent 25c3145237c666fc4fa1dbe9311c2b783609adb6# Parent 58eb97387b90e22ab71b0b18e56469fd942c991f Merge diff -r 25c3145237c6 -r 9223f5bb0bf7 src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp --- a/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Wed Aug 27 22:45:38 2008 -0700 +++ b/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Thu Aug 28 18:17:56 2008 -0700 @@ -229,7 +229,7 @@ HeapWord* first_card_start = _bsa->address_for_index(first_card_index); if (first_card_start < pre_top) { HeapWord* second_card_start = - _bsa->address_for_index(first_card_index + 1); + _bsa->inc_by_region_size(first_card_start); // Ensure enough room to fill with the smallest block second_card_start = MAX2(second_card_start, pre_top + AlignmentReserve); diff -r 25c3145237c6 -r 9223f5bb0bf7 src/share/vm/memory/blockOffsetTable.hpp --- a/src/share/vm/memory/blockOffsetTable.hpp Wed Aug 27 22:45:38 2008 -0700 +++ b/src/share/vm/memory/blockOffsetTable.hpp Thu Aug 28 18:17:56 2008 -0700 @@ -199,6 +199,12 @@ // "index" in "_offset_array". HeapWord* address_for_index(size_t index) const; + // Return the address "p" incremented by the size of + // a region. This method does not align the address + // returned to the start of a region. It is a simple + // primitive. + HeapWord* inc_by_region_size(HeapWord* p) const { return p + N_words; } + // Shared space support void serialize(SerializeOopClosure* soc, HeapWord* start, HeapWord* end); }; diff -r 25c3145237c6 -r 9223f5bb0bf7 src/share/vm/memory/compactingPermGenGen.cpp --- a/src/share/vm/memory/compactingPermGenGen.cpp Wed Aug 27 22:45:38 2008 -0700 +++ b/src/share/vm/memory/compactingPermGenGen.cpp Thu Aug 28 18:17:56 2008 -0700 @@ -421,30 +421,6 @@ } - -bool CompactingPermGenGen::grow_by(size_t bytes) { - // Don't allow _virtual_size to expand into shared spaces. - size_t max_bytes = _virtual_space.uncommitted_size() - _shared_space_size; - if (bytes > _shared_space_size) { - bytes = _shared_space_size; - } - return OneContigSpaceCardGeneration::grow_by(bytes); -} - - -bool CompactingPermGenGen::grow_to_reserved() { - // Don't allow _virtual_size to expand into shared spaces. - bool success = false; - if (_virtual_space.uncommitted_size() > _shared_space_size) { - size_t remaining_bytes = - _virtual_space.uncommitted_size() - _shared_space_size; - success = OneContigSpaceCardGeneration::grow_by(remaining_bytes); - DEBUG_ONLY(if (!success) warning("grow to reserved failed");) - } - return success; -} - - // No young generation references, clear this generation's main space's // card table entries. Do NOT clear the card table entries for the // read-only space (always clear) or the read-write space (valuable diff -r 25c3145237c6 -r 9223f5bb0bf7 src/share/vm/memory/compactingPermGenGen.hpp --- a/src/share/vm/memory/compactingPermGenGen.hpp Wed Aug 27 22:45:38 2008 -0700 +++ b/src/share/vm/memory/compactingPermGenGen.hpp Thu Aug 28 18:17:56 2008 -0700 @@ -183,8 +183,6 @@ void compact(); void post_compact(); size_t contiguous_available() const; - bool grow_by(size_t bytes); - virtual bool grow_to_reserved(); void clear_remembered_set(); void invalidate_remembered_set(); diff -r 25c3145237c6 -r 9223f5bb0bf7 src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Wed Aug 27 22:45:38 2008 -0700 +++ b/src/share/vm/runtime/globals.hpp Thu Aug 28 18:17:56 2008 -0700 @@ -1443,7 +1443,7 @@ "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence" \ " ratio") \ \ - product(bool, CMSPrecleanRefLists1, true, \ + product(bool, CMSPrecleanRefLists1, false, \ "Preclean ref lists during (initial) preclean phase") \ \ product(bool, CMSPrecleanRefLists2, false, \