< prev index next >
src/hotspot/share/gc/g1/g1Policy.cpp
Print this page
rev 51649 : version 1
rev 51650 : added comments
rev 51878 : Minor changes
rev 52017 : All changes for G1 GC moved from 'combined' repo folder
*** 94,104 ****
assert(Heap_lock->owned_by_self(), "Locking discipline.");
if (!adaptive_young_list_length()) {
_young_list_fixed_length = _young_gen_sizer.min_desired_young_length();
}
! _young_gen_sizer.adjust_max_new_size(_g1h->max_regions());
_free_regions_at_end_of_collection = _g1h->num_free_regions();
update_young_list_max_and_target_length();
// We may immediately start allocating regions and placing them on the
--- 94,104 ----
assert(Heap_lock->owned_by_self(), "Locking discipline.");
if (!adaptive_young_list_length()) {
_young_list_fixed_length = _young_gen_sizer.min_desired_young_length();
}
! _young_gen_sizer.adjust_max_new_size(_g1h->max_expandable_regions());
_free_regions_at_end_of_collection = _g1h->num_free_regions();
update_young_list_max_and_target_length();
// We may immediately start allocating regions and placing them on the
*** 216,225 ****
--- 216,230 ----
}
uint G1Policy::update_young_list_target_length(size_t rs_lengths) {
YoungTargetLengths young_lengths = young_list_target_lengths(rs_lengths);
_young_list_target_length = young_lengths.first;
+
+ // Resize dram regions set if called after full collection end.
+ if(_g1h->is_hetero_heap() && (Thread::current()->is_VM_thread() || Heap_lock->owned_by_self())) {
+ static_cast <HeapRegionManagerForHeteroHeap*>(_g1h->hrm())->resize_dram_regions(_young_list_target_length, _g1h->workers());
+ }
return young_lengths.second;
}
G1Policy::YoungTargetLengths G1Policy::young_list_target_lengths(size_t rs_lengths) const {
YoungTargetLengths result;
< prev index next >