--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp Wed Oct 29 06:30:02 2008 -0700
@@ -90,10 +90,10 @@
*/
bool skip_dead = ((PSMarkSweep::total_invocations() % MarkSweepAlwaysCompactCount) != 0);
- ssize_t allowed_deadspace = 0;
+ size_t allowed_deadspace = 0;
if (skip_dead) {
- int ratio = allowed_dead_ratio();
- allowed_deadspace = (space()->capacity_in_bytes() * ratio / 100) / HeapWordSize;
+ const size_t ratio = allowed_dead_ratio();
+ allowed_deadspace = space()->capacity_in_words() * ratio / 100;
}
// Fetch the current destination decorator
@@ -271,10 +271,10 @@
dest->set_compaction_top(compact_top);
}
-bool PSMarkSweepDecorator::insert_deadspace(ssize_t& allowed_deadspace_words,
- HeapWord* q, size_t deadlength) {
- allowed_deadspace_words -= deadlength;
- if (allowed_deadspace_words >= 0) {
+bool PSMarkSweepDecorator::insert_deadspace(size_t& allowed_deadspace_words,
+ HeapWord* q, size_t deadlength) {
+ if (allowed_deadspace_words >= deadlength) {
+ allowed_deadspace_words -= deadlength;
oop(q)->set_mark(markOopDesc::prototype()->set_marked());
const size_t aligned_min_int_array_size =
align_object_size(typeArrayOopDesc::header_size(T_INT));
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Wed Oct 29 06:30:02 2008 -0700
@@ -39,14 +39,16 @@
HeapWord* _first_dead;
HeapWord* _end_of_live;
HeapWord* _compaction_top;
- unsigned int _allowed_dead_ratio;
+ size_t _allowed_dead_ratio;
- bool insert_deadspace(ssize_t& allowed_deadspace_words, HeapWord* q, size_t word_len);
+ bool insert_deadspace(size_t& allowed_deadspace_words, HeapWord* q,
+ size_t word_len);
public:
PSMarkSweepDecorator(MutableSpace* space, ObjectStartArray* start_array,
- unsigned int allowed_dead_ratio) :
- _space(space), _start_array(start_array), _allowed_dead_ratio(allowed_dead_ratio) { }
+ size_t allowed_dead_ratio) :
+ _space(space), _start_array(start_array),
+ _allowed_dead_ratio(allowed_dead_ratio) { }
// During a compacting collection, we need to collapse objects into
// spaces in a given order. We want to fill space A, space B, and so
@@ -57,14 +59,14 @@
static PSMarkSweepDecorator* destination_decorator();
// Accessors
- MutableSpace* space() { return _space; }
- ObjectStartArray* start_array() { return _start_array; }
+ MutableSpace* space() { return _space; }
+ ObjectStartArray* start_array() { return _start_array; }
- HeapWord* compaction_top() { return _compaction_top; }
- void set_compaction_top(HeapWord* value) { _compaction_top = value; }
+ HeapWord* compaction_top() { return _compaction_top; }
+ void set_compaction_top(HeapWord* value) { _compaction_top = value; }
- unsigned int allowed_dead_ratio() { return _allowed_dead_ratio; }
- void set_allowed_dead_ratio(unsigned int value) { _allowed_dead_ratio = value; }
+ size_t allowed_dead_ratio() { return _allowed_dead_ratio; }
+ void set_allowed_dead_ratio(size_t value) { _allowed_dead_ratio = value; }
// Work methods
void adjust_pointers();
--- a/hotspot/src/share/vm/memory/space.cpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/memory/space.cpp Wed Oct 29 06:30:02 2008 -0700
@@ -997,11 +997,11 @@
}
-int TenuredSpace::allowed_dead_ratio() const {
+size_t TenuredSpace::allowed_dead_ratio() const {
return MarkSweepDeadRatio;
}
-int ContigPermSpace::allowed_dead_ratio() const {
+size_t ContigPermSpace::allowed_dead_ratio() const {
return PermMarkSweepDeadRatio;
}
--- a/hotspot/src/share/vm/memory/space.hpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/memory/space.hpp Wed Oct 29 06:30:02 2008 -0700
@@ -421,7 +421,7 @@
// The maximum percentage of objects that can be dead in the compacted
// live part of a compacted space ("deadwood" support.)
- virtual int allowed_dead_ratio() const { return 0; };
+ virtual size_t allowed_dead_ratio() const { return 0; };
// Some contiguous spaces may maintain some data structures that should
// be updated whenever an allocation crosses a boundary. This function
@@ -507,7 +507,7 @@
\
size_t allowed_deadspace = 0; \
if (skip_dead) { \
- int ratio = allowed_dead_ratio(); \
+ const size_t ratio = allowed_dead_ratio(); \
allowed_deadspace = (capacity() * ratio / 100) / HeapWordSize; \
} \
\
@@ -1079,7 +1079,7 @@
friend class VMStructs;
protected:
// Mark sweep support
- int allowed_dead_ratio() const;
+ size_t allowed_dead_ratio() const;
public:
// Constructor
TenuredSpace(BlockOffsetSharedArray* sharedOffsetArray,
@@ -1094,7 +1094,7 @@
friend class VMStructs;
protected:
// Mark sweep support
- int allowed_dead_ratio() const;
+ size_t allowed_dead_ratio() const;
public:
// Constructor
ContigPermSpace(BlockOffsetSharedArray* sharedOffsetArray, MemRegion mr) :
--- a/hotspot/src/share/vm/memory/tenuredGeneration.hpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/memory/tenuredGeneration.hpp Wed Oct 29 06:30:02 2008 -0700
@@ -73,7 +73,6 @@
// Mark sweep support
void compute_new_size();
- int allowed_dead_ratio() const;
virtual void gc_prologue(bool full);
virtual void gc_epilogue(bool full);
--- a/hotspot/src/share/vm/runtime/globals.hpp Fri Oct 31 10:34:20 2008 -0700
+++ b/hotspot/src/share/vm/runtime/globals.hpp Wed Oct 29 06:30:02 2008 -0700
@@ -2792,7 +2792,7 @@
product(intx, TargetSurvivorRatio, 50, \
"Desired percentage of survivor space used after scavenge") \
\
- product(intx, MarkSweepDeadRatio, 5, \
+ product(uintx, MarkSweepDeadRatio, 5, \
"Percentage (0-100) of the old gen allowed as dead wood." \
"Serial mark sweep treats this as both the min and max value." \
"CMS uses this value only if it falls back to mark sweep." \
@@ -2801,7 +2801,7 @@
"either completely full or completely empty. Par compact also" \
"has a smaller default value; see arguments.cpp.") \
\
- product(intx, PermMarkSweepDeadRatio, 20, \
+ product(uintx, PermMarkSweepDeadRatio, 20, \
"Percentage (0-100) of the perm gen allowed as dead wood." \
"See MarkSweepDeadRatio for collector-specific comments.") \
\