src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp

Print this page
rev 2780 : 7102191: G1: assert(_min_desired_young_length <= initial_region_num) failed: Initial young gen size too small
Summary: initial_region_num actually not needed.
Reviewed-by: duke

*** 472,484 **** initialize_size_info(); } size_t min_young_region_num() { return size_to_region_num(_min_gen0_size); } - size_t initial_young_region_num() { - return size_to_region_num(_initial_gen0_size); - } size_t max_young_region_num() { return size_to_region_num(_max_gen0_size); } }; --- 472,481 ----
*** 496,506 **** assert(Heap_lock->owned_by_self(), "Locking discipline."); initialize_gc_policy_counters(); G1YoungGenSizer sizer; - size_t initial_region_num = sizer.initial_young_region_num(); _min_desired_young_length = sizer.min_young_region_num(); _max_desired_young_length = sizer.max_young_region_num(); if (FLAG_IS_CMDLINE(NewRatio)) { if (FLAG_IS_CMDLINE(NewSize) || FLAG_IS_CMDLINE(MaxNewSize)) { --- 493,502 ----
*** 510,530 **** update_young_list_size_using_newratio(_g1->n_regions()); _using_new_ratio_calculations = true; } } - // GenCollectorPolicy guarantees that min <= initial <= max. - // Asserting here just to state that we rely on this property. assert(_min_desired_young_length <= _max_desired_young_length, "Invalid min/max young gen size values"); - assert(initial_region_num <= _max_desired_young_length, "Initial young gen size too large"); - assert(_min_desired_young_length <= initial_region_num, "Initial young gen size too small"); set_adaptive_young_list_length(_min_desired_young_length < _max_desired_young_length); if (adaptive_young_list_length()) { _young_list_fixed_length = 0; } else { ! _young_list_fixed_length = initial_region_num; } _free_regions_at_end_of_collection = _g1->free_regions(); update_young_list_target_length(); _prev_eden_capacity = _young_list_target_length * HeapRegion::GrainBytes; --- 506,523 ---- update_young_list_size_using_newratio(_g1->n_regions()); _using_new_ratio_calculations = true; } } assert(_min_desired_young_length <= _max_desired_young_length, "Invalid min/max young gen size values"); set_adaptive_young_list_length(_min_desired_young_length < _max_desired_young_length); if (adaptive_young_list_length()) { _young_list_fixed_length = 0; } else { ! assert(_min_desired_young_length == _max_desired_young_length, "Min and max young size differ"); ! _young_list_fixed_length = _min_desired_young_length; } _free_regions_at_end_of_collection = _g1->free_regions(); update_young_list_target_length(); _prev_eden_capacity = _young_list_target_length * HeapRegion::GrainBytes;