< prev index next >

src/hotspot/share/gc/g1/g1Policy.hpp

Print this page
rev 60060 : [mq]: 8210462-lkorinth-review

*** 24,36 **** #ifndef SHARE_GC_G1_G1POLICY_HPP #define SHARE_GC_G1_G1POLICY_HPP #include "gc/g1/g1CollectorState.hpp" #include "gc/g1/g1GCPhaseTimes.hpp" #include "gc/g1/g1HeapRegionAttr.hpp" - #include "gc/g1/g1InitialMarkToMixedTimeTracker.hpp" #include "gc/g1/g1MMUTracker.hpp" #include "gc/g1/g1OldGenAllocationTracker.hpp" #include "gc/g1/g1RemSetTrackingPolicy.hpp" #include "gc/g1/g1Predictions.hpp" #include "gc/g1/g1YoungGenSizer.hpp" --- 24,36 ---- #ifndef SHARE_GC_G1_G1POLICY_HPP #define SHARE_GC_G1_G1POLICY_HPP #include "gc/g1/g1CollectorState.hpp" + #include "gc/g1/g1ConcurrentStartToMixedTimeTracker.hpp" #include "gc/g1/g1GCPhaseTimes.hpp" #include "gc/g1/g1HeapRegionAttr.hpp" #include "gc/g1/g1MMUTracker.hpp" #include "gc/g1/g1OldGenAllocationTracker.hpp" #include "gc/g1/g1RemSetTrackingPolicy.hpp" #include "gc/g1/g1Predictions.hpp" #include "gc/g1/g1YoungGenSizer.hpp"
*** 105,115 **** // Tracking the allocation in the old generation between // two GCs. G1OldGenAllocationTracker _old_gen_alloc_tracker; ! G1InitialMarkToMixedTimeTracker _initial_mark_to_mixed; bool should_update_surv_rate_group_predictors() { return collector_state()->in_young_only_phase() && !collector_state()->mark_or_rebuild_in_progress(); } --- 105,115 ---- // Tracking the allocation in the old generation between // two GCs. G1OldGenAllocationTracker _old_gen_alloc_tracker; ! G1ConcurrentStartToMixedTimeTracker _concurrent_start_to_mixed; bool should_update_surv_rate_group_predictors() { return collector_state()->in_young_only_phase() && !collector_state()->mark_or_rebuild_in_progress(); }
*** 269,283 **** enum PauseKind { FullGC, YoungOnlyGC, MixedGC, LastYoungGC, ! InitialMarkGC, Cleanup, Remark }; // Calculate PauseKind from internal state. PauseKind young_gc_pause_kind() const; // Record the given STW pause with the given start and end times (in s). void record_pause(PauseKind kind, double start, double end); // Indicate that we aborted marking before doing any mixed GCs. --- 269,286 ---- enum PauseKind { FullGC, YoungOnlyGC, MixedGC, LastYoungGC, ! ConcurrentStartGC, Cleanup, Remark }; + static bool is_young_only_pause(PauseKind kind); + static bool is_last_young_pause(PauseKind kind); + static bool is_concurrent_start_pause(PauseKind kind); // Calculate PauseKind from internal state. PauseKind young_gc_pause_kind() const; // Record the given STW pause with the given start and end times (in s). void record_pause(PauseKind kind, double start, double end); // Indicate that we aborted marking before doing any mixed GCs.
*** 362,379 **** public: // This sets the initiate_conc_mark_if_possible() flag to start a // new cycle, as long as we are not already in one. It's best if it // is called during a safepoint when the test whether a cycle is in // progress or not is stable. ! bool force_initial_mark_if_outside_cycle(GCCause::Cause gc_cause); // This is called at the very beginning of an evacuation pause (it // has to be the first thing that the pause does). If // initiate_conc_mark_if_possible() is true, and the concurrent // marking thread has completed its work during the previous cycle, ! // it will set in_initial_mark_gc() to so that the pause does ! // the initial-mark work and start a marking cycle. void decide_on_conc_mark_initiation(); size_t young_list_target_length() const { return _young_list_target_length; } bool should_allocate_mutator_region() const; --- 365,382 ---- public: // This sets the initiate_conc_mark_if_possible() flag to start a // new cycle, as long as we are not already in one. It's best if it // is called during a safepoint when the test whether a cycle is in // progress or not is stable. ! bool force_concurrent_start_if_outside_cycle(GCCause::Cause gc_cause); // This is called at the very beginning of an evacuation pause (it // has to be the first thing that the pause does). If // initiate_conc_mark_if_possible() is true, and the concurrent // marking thread has completed its work during the previous cycle, ! // it will set in_concurrent_start_gc() to so that the pause does ! // the concurrent start work and start a marking cycle. void decide_on_conc_mark_initiation(); size_t young_list_target_length() const { return _young_list_target_length; } bool should_allocate_mutator_region() const;
< prev index next >