Print this page
G1: Use SoftMaxHeapSize to guide GC heuristics

*** 69,97 **** bool _clearing_next_bitmap; // Set during a full gc pause. bool _in_full_gc; public: G1CollectorState() : _in_young_only_phase(true), _in_young_gc_before_mixed(false), _in_initial_mark_gc(false), _initiate_conc_mark_if_possible(false), _mark_or_rebuild_in_progress(false), _clearing_next_bitmap(false), ! _in_full_gc(false) { } // Phase setters void set_in_young_only_phase(bool v) { _in_young_only_phase = v; } // Pause setters void set_in_young_gc_before_mixed(bool v) { _in_young_gc_before_mixed = v; } void set_in_initial_mark_gc(bool v) { _in_initial_mark_gc = v; } void set_in_full_gc(bool v) { _in_full_gc = v; } void set_initiate_conc_mark_if_possible(bool v) { _initiate_conc_mark_if_possible = v; } void set_mark_or_rebuild_in_progress(bool v) { _mark_or_rebuild_in_progress = v; } void set_clearing_next_bitmap(bool v) { _clearing_next_bitmap = v; } --- 69,102 ---- bool _clearing_next_bitmap; // Set during a full gc pause. bool _in_full_gc; + // Indicate finish of mixed gc(s) + bool _finish_of_mixed_gc; + public: G1CollectorState() : _in_young_only_phase(true), _in_young_gc_before_mixed(false), _in_initial_mark_gc(false), _initiate_conc_mark_if_possible(false), _mark_or_rebuild_in_progress(false), _clearing_next_bitmap(false), ! _in_full_gc(false), ! _finish_of_mixed_gc(false) { } // Phase setters void set_in_young_only_phase(bool v) { _in_young_only_phase = v; } // Pause setters void set_in_young_gc_before_mixed(bool v) { _in_young_gc_before_mixed = v; } void set_in_initial_mark_gc(bool v) { _in_initial_mark_gc = v; } void set_in_full_gc(bool v) { _in_full_gc = v; } + void set_finish_of_mixed_gc(bool v) { _finish_of_mixed_gc = v; } void set_initiate_conc_mark_if_possible(bool v) { _initiate_conc_mark_if_possible = v; } void set_mark_or_rebuild_in_progress(bool v) { _mark_or_rebuild_in_progress = v; } void set_clearing_next_bitmap(bool v) { _clearing_next_bitmap = v; }
*** 107,116 **** --- 112,122 ---- bool initiate_conc_mark_if_possible() const { return _initiate_conc_mark_if_possible; } bool mark_or_rebuild_in_progress() const { return _mark_or_rebuild_in_progress; } bool clearing_next_bitmap() const { return _clearing_next_bitmap; } + bool finish_of_mixed_gc() const { return _finish_of_mixed_gc; } G1YCType yc_type() const { if (in_initial_mark_gc()) { return InitialMark; } else if (mark_or_rebuild_in_progress()) {