8198530: Move _gc_policy_counters from GenCollectorPolicy to GenCollectedHeap
Reviewed-by: kbarrett, sjohanss
This commit is contained in:
parent
5671589a10
commit
3ad60c1bd2
@ -51,8 +51,3 @@ void ConcurrentMarkSweepPolicy::initialize_alignments() {
|
|||||||
_space_alignment = _gen_alignment = (uintx)Generation::GenGrain;
|
_space_alignment = _gen_alignment = (uintx)Generation::GenGrain;
|
||||||
_heap_alignment = compute_heap_alignment();
|
_heap_alignment = compute_heap_alignment();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConcurrentMarkSweepPolicy::initialize_gc_policy_counters() {
|
|
||||||
// initialize the policy counters - 2 collectors, 2 generations
|
|
||||||
_gc_policy_counters = new GCPolicyCounters("ParNew:CMS", 2, 2);
|
|
||||||
}
|
|
||||||
|
@ -33,8 +33,6 @@ class ConcurrentMarkSweepPolicy : public GenCollectorPolicy {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
ConcurrentMarkSweepPolicy() {}
|
ConcurrentMarkSweepPolicy() {}
|
||||||
|
|
||||||
void initialize_gc_policy_counters();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHARE_VM_GC_CMS_CMSCOLLECTORPOLICY_HPP
|
#endif // SHARE_VM_GC_CMS_CMSCOLLECTORPOLICY_HPP
|
||||||
|
@ -66,7 +66,8 @@ public:
|
|||||||
CMSHeap::CMSHeap(GenCollectorPolicy *policy) :
|
CMSHeap::CMSHeap(GenCollectorPolicy *policy) :
|
||||||
GenCollectedHeap(policy,
|
GenCollectedHeap(policy,
|
||||||
Generation::ParNew,
|
Generation::ParNew,
|
||||||
Generation::ConcurrentMarkSweep),
|
Generation::ConcurrentMarkSweep,
|
||||||
|
"ParNew::CMS"),
|
||||||
_eden_pool(NULL),
|
_eden_pool(NULL),
|
||||||
_survivor_pool(NULL),
|
_survivor_pool(NULL),
|
||||||
_old_pool(NULL) {
|
_old_pool(NULL) {
|
||||||
|
@ -1887,7 +1887,7 @@ void CMSCollector::collect_in_background(GCCause::Cause cause) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Should this be in gc_epilogue?
|
// Should this be in gc_epilogue?
|
||||||
collector_policy()->counters()->update_counters();
|
heap->counters()->update_counters();
|
||||||
|
|
||||||
{
|
{
|
||||||
// Clear _foregroundGCShouldWait and, in the event that the
|
// Clear _foregroundGCShouldWait and, in the event that the
|
||||||
|
@ -41,11 +41,5 @@ class GenerationSizer : public GenCollectorPolicy {
|
|||||||
void initialize_alignments();
|
void initialize_alignments();
|
||||||
void initialize_flags();
|
void initialize_flags();
|
||||||
void initialize_size_info();
|
void initialize_size_info();
|
||||||
|
|
||||||
public:
|
|
||||||
// We don't have associated counters and complain if this is invoked.
|
|
||||||
void initialize_gc_policy_counters() {
|
|
||||||
ShouldNotReachHere();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
#endif // SHARE_VM_GC_PARALLEL_GENERATIONSIZER_HPP
|
#endif // SHARE_VM_GC_PARALLEL_GENERATIONSIZER_HPP
|
||||||
|
@ -565,7 +565,7 @@ void DefNewGeneration::adjust_desired_tenuring_threshold() {
|
|||||||
_tenuring_threshold = age_table()->compute_tenuring_threshold(desired_survivor_size);
|
_tenuring_threshold = age_table()->compute_tenuring_threshold(desired_survivor_size);
|
||||||
|
|
||||||
if (UsePerfData) {
|
if (UsePerfData) {
|
||||||
GCPolicyCounters* gc_counters = GenCollectedHeap::heap()->gen_policy()->counters();
|
GCPolicyCounters* gc_counters = GenCollectedHeap::heap()->counters();
|
||||||
gc_counters->tenuring_threshold()->set_value(_tenuring_threshold);
|
gc_counters->tenuring_threshold()->set_value(_tenuring_threshold);
|
||||||
gc_counters->desired_survivor_size()->set_value(desired_survivor_size * oopSize);
|
gc_counters->desired_survivor_size()->set_value(desired_survivor_size * oopSize);
|
||||||
}
|
}
|
||||||
@ -951,7 +951,7 @@ void DefNewGeneration::gc_epilogue(bool full) {
|
|||||||
|
|
||||||
// update the generation and space performance counters
|
// update the generation and space performance counters
|
||||||
update_counters();
|
update_counters();
|
||||||
gch->gen_policy()->counters()->update_counters();
|
gch->counters()->update_counters();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefNewGeneration::record_spaces_top() {
|
void DefNewGeneration::record_spaces_top() {
|
||||||
|
@ -31,7 +31,8 @@
|
|||||||
SerialHeap::SerialHeap(GenCollectorPolicy* policy) :
|
SerialHeap::SerialHeap(GenCollectorPolicy* policy) :
|
||||||
GenCollectedHeap(policy,
|
GenCollectedHeap(policy,
|
||||||
Generation::DefNew,
|
Generation::DefNew,
|
||||||
Generation::MarkSweepCompact),
|
Generation::MarkSweepCompact,
|
||||||
|
"Copy:MSC"),
|
||||||
_eden_pool(NULL),
|
_eden_pool(NULL),
|
||||||
_survivor_pool(NULL),
|
_survivor_pool(NULL),
|
||||||
_old_pool(NULL) {
|
_old_pool(NULL) {
|
||||||
|
@ -546,8 +546,3 @@ void MarkSweepPolicy::initialize_alignments() {
|
|||||||
_space_alignment = _gen_alignment = (size_t)Generation::GenGrain;
|
_space_alignment = _gen_alignment = (size_t)Generation::GenGrain;
|
||||||
_heap_alignment = compute_heap_alignment();
|
_heap_alignment = compute_heap_alignment();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MarkSweepPolicy::initialize_gc_policy_counters() {
|
|
||||||
// Initialize the policy counters - 2 collectors, 2 generations.
|
|
||||||
_gc_policy_counters = new GCPolicyCounters("Copy:MSC", 2, 2);
|
|
||||||
}
|
|
||||||
|
@ -53,7 +53,6 @@ class ConcurrentMarkSweepPolicy;
|
|||||||
class G1CollectorPolicy;
|
class G1CollectorPolicy;
|
||||||
#endif // INCLUDE_ALL_GCS
|
#endif // INCLUDE_ALL_GCS
|
||||||
|
|
||||||
class GCPolicyCounters;
|
|
||||||
class MarkSweepPolicy;
|
class MarkSweepPolicy;
|
||||||
|
|
||||||
class CollectorPolicy : public CHeapObj<mtGC> {
|
class CollectorPolicy : public CHeapObj<mtGC> {
|
||||||
@ -108,8 +107,6 @@ protected:
|
|||||||
// time. When using large pages they can differ.
|
// time. When using large pages they can differ.
|
||||||
size_t _gen_alignment;
|
size_t _gen_alignment;
|
||||||
|
|
||||||
GCPolicyCounters* _gc_policy_counters;
|
|
||||||
|
|
||||||
void initialize_flags();
|
void initialize_flags();
|
||||||
void initialize_size_info();
|
void initialize_size_info();
|
||||||
|
|
||||||
@ -139,12 +136,6 @@ protected:
|
|||||||
size_t initial_old_size() { return _initial_old_size; }
|
size_t initial_old_size() { return _initial_old_size; }
|
||||||
size_t max_old_size() { return _max_old_size; }
|
size_t max_old_size() { return _max_old_size; }
|
||||||
|
|
||||||
// Performance Counter support
|
|
||||||
GCPolicyCounters* counters() { return _gc_policy_counters; }
|
|
||||||
|
|
||||||
// Create the jstat counters for the GC policy.
|
|
||||||
virtual void initialize_gc_policy_counters() = 0;
|
|
||||||
|
|
||||||
size_t young_gen_size_lower_bound();
|
size_t young_gen_size_lower_bound();
|
||||||
|
|
||||||
size_t old_gen_size_lower_bound();
|
size_t old_gen_size_lower_bound();
|
||||||
@ -156,8 +147,6 @@ class MarkSweepPolicy : public GenCollectorPolicy {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
MarkSweepPolicy() {}
|
MarkSweepPolicy() {}
|
||||||
|
|
||||||
void initialize_gc_policy_counters();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SHARE_VM_GC_SHARED_COLLECTORPOLICY_HPP
|
#endif // SHARE_VM_GC_SHARED_COLLECTORPOLICY_HPP
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "gc/shared/collectorCounters.hpp"
|
#include "gc/shared/collectorCounters.hpp"
|
||||||
#include "gc/shared/gcId.hpp"
|
#include "gc/shared/gcId.hpp"
|
||||||
#include "gc/shared/gcLocker.inline.hpp"
|
#include "gc/shared/gcLocker.inline.hpp"
|
||||||
|
#include "gc/shared/gcPolicyCounters.hpp"
|
||||||
#include "gc/shared/gcTrace.hpp"
|
#include "gc/shared/gcTrace.hpp"
|
||||||
#include "gc/shared/gcTraceTime.inline.hpp"
|
#include "gc/shared/gcTraceTime.inline.hpp"
|
||||||
#include "gc/shared/genCollectedHeap.hpp"
|
#include "gc/shared/genCollectedHeap.hpp"
|
||||||
@ -64,7 +65,8 @@
|
|||||||
|
|
||||||
GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy,
|
GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy,
|
||||||
Generation::Name young,
|
Generation::Name young,
|
||||||
Generation::Name old) :
|
Generation::Name old,
|
||||||
|
const char* policy_counters_name) :
|
||||||
CollectedHeap(),
|
CollectedHeap(),
|
||||||
_rem_set(NULL),
|
_rem_set(NULL),
|
||||||
_young_gen_spec(new GenerationSpec(young,
|
_young_gen_spec(new GenerationSpec(young,
|
||||||
@ -77,6 +79,7 @@ GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy,
|
|||||||
policy->gen_alignment())),
|
policy->gen_alignment())),
|
||||||
_gen_policy(policy),
|
_gen_policy(policy),
|
||||||
_soft_ref_gen_policy(),
|
_soft_ref_gen_policy(),
|
||||||
|
_gc_policy_counters(new GCPolicyCounters(policy_counters_name, 2, 2)),
|
||||||
_process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
|
_process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
|
||||||
_full_collections_completed(0) {
|
_full_collections_completed(0) {
|
||||||
}
|
}
|
||||||
@ -168,8 +171,6 @@ void GenCollectedHeap::post_initialize() {
|
|||||||
initialize_size_policy(def_new_gen->eden()->capacity(),
|
initialize_size_policy(def_new_gen->eden()->capacity(),
|
||||||
_old_gen->capacity(),
|
_old_gen->capacity(),
|
||||||
def_new_gen->from()->capacity());
|
def_new_gen->from()->capacity());
|
||||||
|
|
||||||
_gen_policy->initialize_gc_policy_counters();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GenCollectedHeap::ref_processing_init() {
|
void GenCollectedHeap::ref_processing_init() {
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "gc/shared/softRefGenPolicy.hpp"
|
#include "gc/shared/softRefGenPolicy.hpp"
|
||||||
|
|
||||||
class AdaptiveSizePolicy;
|
class AdaptiveSizePolicy;
|
||||||
|
class GCPolicyCounters;
|
||||||
class GenerationSpec;
|
class GenerationSpec;
|
||||||
class StrongRootsScope;
|
class StrongRootsScope;
|
||||||
class SubTasksDone;
|
class SubTasksDone;
|
||||||
@ -80,6 +81,8 @@ private:
|
|||||||
// The sizing of the heap is controlled by a sizing policy.
|
// The sizing of the heap is controlled by a sizing policy.
|
||||||
AdaptiveSizePolicy* _size_policy;
|
AdaptiveSizePolicy* _size_policy;
|
||||||
|
|
||||||
|
GCPolicyCounters* _gc_policy_counters;
|
||||||
|
|
||||||
// Indicates that the most recent previous incremental collection failed.
|
// Indicates that the most recent previous incremental collection failed.
|
||||||
// The flag is cleared when an action is taken that might clear the
|
// The flag is cleared when an action is taken that might clear the
|
||||||
// condition that caused that incremental collection to fail.
|
// condition that caused that incremental collection to fail.
|
||||||
@ -155,7 +158,8 @@ protected:
|
|||||||
|
|
||||||
GenCollectedHeap(GenCollectorPolicy *policy,
|
GenCollectedHeap(GenCollectorPolicy *policy,
|
||||||
Generation::Name young,
|
Generation::Name young,
|
||||||
Generation::Name old);
|
Generation::Name old,
|
||||||
|
const char* policy_counters_name);
|
||||||
|
|
||||||
virtual void check_gen_kinds() = 0;
|
virtual void check_gen_kinds() = 0;
|
||||||
|
|
||||||
@ -192,6 +196,9 @@ public:
|
|||||||
return _size_policy;
|
return _size_policy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Performance Counter support
|
||||||
|
GCPolicyCounters* counters() { return _gc_policy_counters; }
|
||||||
|
|
||||||
// Return the (conservative) maximum heap alignment
|
// Return the (conservative) maximum heap alignment
|
||||||
static size_t conservative_max_heap_alignment() {
|
static size_t conservative_max_heap_alignment() {
|
||||||
return Generation::GenGrain;
|
return Generation::GenGrain;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user