< prev index next >

src/share/vm/gc/shared/collectorPolicy.hpp

Print this page
rev 13243 : 8179268: Factor out AdaptiveSizePolicy from top-level interfaces CollectorPolicy and CollectedHeap
Reviewed-by: pliden, mgerdin

*** 70,82 **** size_t _min_heap_byte_size; size_t _space_alignment; size_t _heap_alignment; - // The sizing of the heap is controlled by a sizing policy. - AdaptiveSizePolicy* _size_policy; - // Set to true when policy wants soft refs cleared. // Reset to false by gc after it clears all soft refs. bool _should_clear_all_soft_refs; // Set to true by the GC if the just-completed gc cleared all --- 70,79 ----
*** 103,124 **** size_t initial_heap_byte_size() { return _initial_heap_byte_size; } size_t max_heap_byte_size() { return _max_heap_byte_size; } size_t min_heap_byte_size() { return _min_heap_byte_size; } - AdaptiveSizePolicy* size_policy() { return _size_policy; } bool should_clear_all_soft_refs() { return _should_clear_all_soft_refs; } void set_should_clear_all_soft_refs(bool v) { _should_clear_all_soft_refs = v; } // Returns the current value of _should_clear_all_soft_refs. // _should_clear_all_soft_refs is set to false as a side effect. bool use_should_clear_all_soft_refs(bool v); bool all_soft_refs_clear() { return _all_soft_refs_clear; } void set_all_soft_refs_clear(bool v) { _all_soft_refs_clear = v; } // Called by the GC after Soft Refs have been cleared to indicate // that the request in _should_clear_all_soft_refs has been fulfilled. ! void cleared_all_soft_refs(); // Identification methods. virtual GenCollectorPolicy* as_generation_policy() { return NULL; } virtual MarkSweepPolicy* as_mark_sweep_policy() { return NULL; } #if INCLUDE_ALL_GCS --- 100,120 ---- size_t initial_heap_byte_size() { return _initial_heap_byte_size; } size_t max_heap_byte_size() { return _max_heap_byte_size; } size_t min_heap_byte_size() { return _min_heap_byte_size; } bool should_clear_all_soft_refs() { return _should_clear_all_soft_refs; } void set_should_clear_all_soft_refs(bool v) { _should_clear_all_soft_refs = v; } // Returns the current value of _should_clear_all_soft_refs. // _should_clear_all_soft_refs is set to false as a side effect. bool use_should_clear_all_soft_refs(bool v); bool all_soft_refs_clear() { return _all_soft_refs_clear; } void set_all_soft_refs_clear(bool v) { _all_soft_refs_clear = v; } // Called by the GC after Soft Refs have been cleared to indicate // that the request in _should_clear_all_soft_refs has been fulfilled. ! virtual void cleared_all_soft_refs(); // Identification methods. virtual GenCollectorPolicy* as_generation_policy() { return NULL; } virtual MarkSweepPolicy* as_mark_sweep_policy() { return NULL; } #if INCLUDE_ALL_GCS
*** 158,168 **** }; class GenCollectorPolicy : public CollectorPolicy { friend class TestGenCollectorPolicy; friend class VMStructs; ! protected: size_t _min_young_size; size_t _initial_young_size; size_t _max_young_size; size_t _min_old_size; size_t _initial_old_size; --- 154,165 ---- }; class GenCollectorPolicy : public CollectorPolicy { friend class TestGenCollectorPolicy; friend class VMStructs; ! ! protected: size_t _min_young_size; size_t _initial_young_size; size_t _max_young_size; size_t _min_old_size; size_t _initial_old_size;
*** 175,184 **** --- 172,184 ---- GenerationSpec* _young_gen_spec; GenerationSpec* _old_gen_spec; GCPolicyCounters* _gc_policy_counters; + // The sizing of the heap is controlled by a sizing policy. + AdaptiveSizePolicy* _size_policy; + // Return true if an allocation should be attempted in the older generation // if it fails in the younger generation. Return false, otherwise. virtual bool should_try_older_generation_allocation(size_t word_size) const; void initialize_flags();
*** 247,259 **** --- 247,264 ---- bool* gc_overhead_limit_was_exceeded); HeapWord *satisfy_failed_allocation(size_t size, bool is_tlab); // Adaptive size policy + AdaptiveSizePolicy* size_policy() { return _size_policy; } + virtual void initialize_size_policy(size_t init_eden_size, size_t init_promo_size, size_t init_survivor_size); + + virtual void cleared_all_soft_refs(); + }; class MarkSweepPolicy : public GenCollectorPolicy { protected: void initialize_alignments();
< prev index next >