8274927: Remove unnecessary G1ArchiveAllocator code
Reviewed-by: kbarrett, ayang
This commit is contained in:
parent
c55dd365e3
commit
aaf2401bc7
@ -475,7 +475,6 @@ HeapWord* G1ArchiveAllocator::archive_mem_allocate(size_t word_size) {
|
|||||||
// Non-zero space; need to insert the filler
|
// Non-zero space; need to insert the filler
|
||||||
size_t fill_size = free_words;
|
size_t fill_size = free_words;
|
||||||
CollectedHeap::fill_with_object(old_top, fill_size);
|
CollectedHeap::fill_with_object(old_top, fill_size);
|
||||||
_summary_bytes_used += fill_size * HeapWordSize;
|
|
||||||
}
|
}
|
||||||
// Set the current chunk as "full"
|
// Set the current chunk as "full"
|
||||||
_allocation_region->set_top(_max);
|
_allocation_region->set_top(_max);
|
||||||
@ -495,7 +494,6 @@ HeapWord* G1ArchiveAllocator::archive_mem_allocate(size_t word_size) {
|
|||||||
}
|
}
|
||||||
assert(pointer_delta(_max, old_top) >= word_size, "enough space left");
|
assert(pointer_delta(_max, old_top) >= word_size, "enough space left");
|
||||||
_allocation_region->set_top(old_top + word_size);
|
_allocation_region->set_top(old_top + word_size);
|
||||||
_summary_bytes_used += word_size * HeapWordSize;
|
|
||||||
|
|
||||||
return old_top;
|
return old_top;
|
||||||
}
|
}
|
||||||
|
@ -223,9 +223,6 @@ protected:
|
|||||||
// Regions allocated for the current archive range.
|
// Regions allocated for the current archive range.
|
||||||
GrowableArray<HeapRegion*> _allocated_regions;
|
GrowableArray<HeapRegion*> _allocated_regions;
|
||||||
|
|
||||||
// The number of bytes used in the current range.
|
|
||||||
size_t _summary_bytes_used;
|
|
||||||
|
|
||||||
// Current allocation window within the current region.
|
// Current allocation window within the current region.
|
||||||
HeapWord* _bottom;
|
HeapWord* _bottom;
|
||||||
HeapWord* _top;
|
HeapWord* _top;
|
||||||
@ -243,7 +240,6 @@ public:
|
|||||||
_allocated_regions((ResourceObj::set_allocation_type((address) &_allocated_regions,
|
_allocated_regions((ResourceObj::set_allocation_type((address) &_allocated_regions,
|
||||||
ResourceObj::C_HEAP),
|
ResourceObj::C_HEAP),
|
||||||
2), mtGC),
|
2), mtGC),
|
||||||
_summary_bytes_used(0),
|
|
||||||
_bottom(NULL),
|
_bottom(NULL),
|
||||||
_top(NULL),
|
_top(NULL),
|
||||||
_max(NULL) { }
|
_max(NULL) { }
|
||||||
@ -261,19 +257,6 @@ public:
|
|||||||
// aligning to the requested alignment.
|
// aligning to the requested alignment.
|
||||||
void complete_archive(GrowableArray<MemRegion>* ranges,
|
void complete_archive(GrowableArray<MemRegion>* ranges,
|
||||||
size_t end_alignment_in_bytes);
|
size_t end_alignment_in_bytes);
|
||||||
|
|
||||||
// The number of bytes allocated by this allocator.
|
|
||||||
size_t used() {
|
|
||||||
return _summary_bytes_used;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the count of bytes allocated in prior G1 regions. This
|
|
||||||
// must be done when recalculate_use is used to reset the counter
|
|
||||||
// for the generic allocator, since it counts bytes in all G1
|
|
||||||
// regions, including those still associated with this allocator.
|
|
||||||
void clear_used() {
|
|
||||||
_summary_bytes_used = 0;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHARE_GC_G1_G1ALLOCATOR_HPP
|
#endif // SHARE_GC_G1_G1ALLOCATOR_HPP
|
||||||
|
@ -498,10 +498,9 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
|
|||||||
|
|
||||||
void G1CollectedHeap::begin_archive_alloc_range(bool open) {
|
void G1CollectedHeap::begin_archive_alloc_range(bool open) {
|
||||||
assert_at_safepoint_on_vm_thread();
|
assert_at_safepoint_on_vm_thread();
|
||||||
if (_archive_allocator == NULL) {
|
assert(_archive_allocator == nullptr, "should not be initialized");
|
||||||
_archive_allocator = G1ArchiveAllocator::create_allocator(this, open);
|
_archive_allocator = G1ArchiveAllocator::create_allocator(this, open);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
bool G1CollectedHeap::is_archive_alloc_too_large(size_t word_size) {
|
bool G1CollectedHeap::is_archive_alloc_too_large(size_t word_size) {
|
||||||
// Allocations in archive regions cannot be of a size that would be considered
|
// Allocations in archive regions cannot be of a size that would be considered
|
||||||
@ -512,9 +511,9 @@ bool G1CollectedHeap::is_archive_alloc_too_large(size_t word_size) {
|
|||||||
|
|
||||||
HeapWord* G1CollectedHeap::archive_mem_allocate(size_t word_size) {
|
HeapWord* G1CollectedHeap::archive_mem_allocate(size_t word_size) {
|
||||||
assert_at_safepoint_on_vm_thread();
|
assert_at_safepoint_on_vm_thread();
|
||||||
assert(_archive_allocator != NULL, "_archive_allocator not initialized");
|
assert(_archive_allocator != nullptr, "_archive_allocator not initialized");
|
||||||
if (is_archive_alloc_too_large(word_size)) {
|
if (is_archive_alloc_too_large(word_size)) {
|
||||||
return NULL;
|
return nullptr;
|
||||||
}
|
}
|
||||||
return _archive_allocator->archive_mem_allocate(word_size);
|
return _archive_allocator->archive_mem_allocate(word_size);
|
||||||
}
|
}
|
||||||
@ -522,13 +521,13 @@ HeapWord* G1CollectedHeap::archive_mem_allocate(size_t word_size) {
|
|||||||
void G1CollectedHeap::end_archive_alloc_range(GrowableArray<MemRegion>* ranges,
|
void G1CollectedHeap::end_archive_alloc_range(GrowableArray<MemRegion>* ranges,
|
||||||
size_t end_alignment_in_bytes) {
|
size_t end_alignment_in_bytes) {
|
||||||
assert_at_safepoint_on_vm_thread();
|
assert_at_safepoint_on_vm_thread();
|
||||||
assert(_archive_allocator != NULL, "_archive_allocator not initialized");
|
assert(_archive_allocator != nullptr, "_archive_allocator not initialized");
|
||||||
|
|
||||||
// Call complete_archive to do the real work, filling in the MemRegion
|
// Call complete_archive to do the real work, filling in the MemRegion
|
||||||
// array with the archive regions.
|
// array with the archive regions.
|
||||||
_archive_allocator->complete_archive(ranges, end_alignment_in_bytes);
|
_archive_allocator->complete_archive(ranges, end_alignment_in_bytes);
|
||||||
delete _archive_allocator;
|
delete _archive_allocator;
|
||||||
_archive_allocator = NULL;
|
_archive_allocator = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool G1CollectedHeap::check_archive_addresses(MemRegion* ranges, size_t count) {
|
bool G1CollectedHeap::check_archive_addresses(MemRegion* ranges, size_t count) {
|
||||||
@ -1449,7 +1448,7 @@ G1CollectedHeap::G1CollectedHeap() :
|
|||||||
_verifier(NULL),
|
_verifier(NULL),
|
||||||
_summary_bytes_used(0),
|
_summary_bytes_used(0),
|
||||||
_bytes_used_during_gc(0),
|
_bytes_used_during_gc(0),
|
||||||
_archive_allocator(NULL),
|
_archive_allocator(nullptr),
|
||||||
_survivor_evac_stats("Young", YoungPLABSize, PLABWeight),
|
_survivor_evac_stats("Young", YoungPLABSize, PLABWeight),
|
||||||
_old_evac_stats("Old", OldPLABSize, PLABWeight),
|
_old_evac_stats("Old", OldPLABSize, PLABWeight),
|
||||||
_monitoring_support(nullptr),
|
_monitoring_support(nullptr),
|
||||||
@ -1861,9 +1860,7 @@ void G1CollectedHeap::iterate_hcc_closure(G1CardTableEntryClosure* cl, uint work
|
|||||||
// Computes the sum of the storage used by the various regions.
|
// Computes the sum of the storage used by the various regions.
|
||||||
size_t G1CollectedHeap::used() const {
|
size_t G1CollectedHeap::used() const {
|
||||||
size_t result = _summary_bytes_used + _allocator->used_in_alloc_regions();
|
size_t result = _summary_bytes_used + _allocator->used_in_alloc_regions();
|
||||||
if (_archive_allocator != NULL) {
|
assert(_archive_allocator == nullptr, "must be, should not contribute to used");
|
||||||
result += _archive_allocator->used();
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3197,9 +3194,7 @@ void G1CollectedHeap::rebuild_region_sets(bool free_list_only) {
|
|||||||
|
|
||||||
if (!free_list_only) {
|
if (!free_list_only) {
|
||||||
set_used(cl.total_used());
|
set_used(cl.total_used());
|
||||||
if (_archive_allocator != NULL) {
|
assert(_archive_allocator == nullptr, "must be, should not contribute to used");
|
||||||
_archive_allocator->clear_used();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
assert_used_and_recalculate_used_equal(this);
|
assert_used_and_recalculate_used_equal(this);
|
||||||
}
|
}
|
||||||
@ -3393,9 +3388,7 @@ void G1CollectedHeap::update_used_after_gc(bool evacuation_failed) {
|
|||||||
|
|
||||||
set_used(recalculate_used());
|
set_used(recalculate_used());
|
||||||
|
|
||||||
if (_archive_allocator != NULL) {
|
assert(_archive_allocator == nullptr, "must be, should not contribute to used");
|
||||||
_archive_allocator->clear_used();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// The "used" of the the collection set have already been subtracted
|
// The "used" of the the collection set have already been subtracted
|
||||||
// when they were freed. Add in the bytes used.
|
// when they were freed. Add in the bytes used.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user