--- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Wed Aug 27 22:45:38 2008 -0700
+++ b/hotspot/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);
--- a/hotspot/src/share/vm/memory/blockOffsetTable.hpp Wed Aug 27 22:45:38 2008 -0700
+++ b/hotspot/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);
};
--- a/hotspot/src/share/vm/memory/compactingPermGenGen.cpp Wed Aug 27 22:45:38 2008 -0700
+++ b/hotspot/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
--- a/hotspot/src/share/vm/memory/compactingPermGenGen.hpp Wed Aug 27 22:45:38 2008 -0700
+++ b/hotspot/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();
--- a/hotspot/src/share/vm/runtime/globals.hpp Wed Aug 27 22:45:38 2008 -0700
+++ b/hotspot/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, \