< 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 >