mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-14 09:53:18 +00:00
8379781: G1: Full GC does not print partial array task stats
Reviewed-by: iwalulya, kbarrett
This commit is contained in:
parent
713664fa93
commit
1ea8ef92bc
@ -682,14 +682,14 @@ void G1ConcurrentMark::set_concurrency_and_phase(uint active_tasks, bool concurr
|
||||
#if TASKQUEUE_STATS
|
||||
void G1ConcurrentMark::print_and_reset_taskqueue_stats() {
|
||||
|
||||
_task_queues->print_and_reset_taskqueue_stats("G1ConcurrentMark Oop Queue");
|
||||
_task_queues->print_and_reset_taskqueue_stats("Concurrent Mark");
|
||||
|
||||
auto get_pa_stats = [&](uint i) {
|
||||
return _tasks[i]->partial_array_task_stats();
|
||||
};
|
||||
|
||||
PartialArrayTaskStats::log_set(_max_num_tasks, get_pa_stats,
|
||||
"G1ConcurrentMark Partial Array Task Stats");
|
||||
"Concurrent Mark Partial Array");
|
||||
|
||||
for (uint i = 0; i < _max_num_tasks; ++i) {
|
||||
get_pa_stats(i)->reset();
|
||||
|
||||
@ -353,7 +353,13 @@ void G1FullCollector::phase1_mark_live_objects() {
|
||||
scope()->tracer()->report_object_count_after_gc(&_is_alive, _heap->workers());
|
||||
}
|
||||
#if TASKQUEUE_STATS
|
||||
marking_task_queues()->print_and_reset_taskqueue_stats("Marking Task Queue");
|
||||
marking_task_queues()->print_and_reset_taskqueue_stats("Full GC");
|
||||
|
||||
auto get_stats = [&](uint i) {
|
||||
return marker(i)->partial_array_splitter().stats();
|
||||
};
|
||||
PartialArrayTaskStats::log_set(_num_workers, get_stats,
|
||||
"Full GC Partial Array");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -89,6 +89,7 @@ public:
|
||||
~G1FullGCMarker();
|
||||
|
||||
G1MarkTasksQueue* task_queue() { return &_task_queue; }
|
||||
PartialArraySplitter& partial_array_splitter() { return _partial_array_splitter; }
|
||||
|
||||
// Marking entry points
|
||||
template <class T> inline void mark_and_push(T* p);
|
||||
|
||||
@ -741,7 +741,7 @@ void G1ParScanThreadStateSet::print_partial_array_task_stats() {
|
||||
return state_for_worker(i)->partial_array_task_stats();
|
||||
};
|
||||
PartialArrayTaskStats::log_set(_num_workers, get_stats,
|
||||
"Partial Array Task Stats");
|
||||
"Young GC Partial Array");
|
||||
}
|
||||
|
||||
#endif // TASKQUEUE_STATS
|
||||
|
||||
@ -1064,6 +1064,7 @@ void G1YoungCollector::post_evacuate_collection_set(G1EvacInfo* evacuation_info,
|
||||
allocator()->release_gc_alloc_regions(evacuation_info);
|
||||
|
||||
#if TASKQUEUE_STATS
|
||||
_g1h->task_queues()->print_and_reset_taskqueue_stats("Young GC");
|
||||
// Logging uses thread states, which are deleted by cleanup, so this must
|
||||
// be done before cleanup.
|
||||
per_thread_states->print_partial_array_task_stats();
|
||||
@ -1183,5 +1184,4 @@ void G1YoungCollector::collect() {
|
||||
|
||||
policy()->record_young_collection_end(_concurrent_operation_is_full_mark, evacuation_alloc_failed(), _allocation_word_size);
|
||||
}
|
||||
TASKQUEUE_STATS_ONLY(_g1h->task_queues()->print_and_reset_taskqueue_stats("Oop Queue");)
|
||||
}
|
||||
|
||||
@ -203,13 +203,13 @@ void ParCompactionManager::remove_all_shadow_regions() {
|
||||
|
||||
#if TASKQUEUE_STATS
|
||||
void ParCompactionManager::print_and_reset_taskqueue_stats() {
|
||||
marking_stacks()->print_and_reset_taskqueue_stats("Marking Stacks");
|
||||
marking_stacks()->print_and_reset_taskqueue_stats("Full GC");
|
||||
|
||||
auto get_pa_stats = [&](uint i) {
|
||||
return _manager_array[i]->partial_array_task_stats();
|
||||
};
|
||||
PartialArrayTaskStats::log_set(ParallelGCThreads, get_pa_stats,
|
||||
"Partial Array Task Stats");
|
||||
"Full GC Partial Array");
|
||||
uint parallel_gc_threads = ParallelScavengeHeap::heap()->workers().max_workers();
|
||||
for (uint i = 0; i < parallel_gc_threads; ++i) {
|
||||
get_pa_stats(i)->reset();
|
||||
|
||||
@ -138,13 +138,13 @@ bool PSPromotionManager::post_scavenge(YoungGCTracer& gc_tracer) {
|
||||
#if TASKQUEUE_STATS
|
||||
|
||||
void PSPromotionManager::print_and_reset_taskqueue_stats() {
|
||||
stack_array_depth()->print_and_reset_taskqueue_stats("Oop Queue");
|
||||
stack_array_depth()->print_and_reset_taskqueue_stats("Young GC");
|
||||
|
||||
auto get_pa_stats = [&](uint i) {
|
||||
return manager_array(i)->partial_array_task_stats();
|
||||
};
|
||||
PartialArrayTaskStats::log_set(ParallelGCThreads, get_pa_stats,
|
||||
"Partial Array Task Stats");
|
||||
"Young GC Partial Array");
|
||||
for (uint i = 0; i < ParallelGCThreads; ++i) {
|
||||
get_pa_stats(i)->reset();
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ static const char* const stats_hdr[] = {
|
||||
};
|
||||
|
||||
void PartialArrayTaskStats::print_header(outputStream* s, const char* title) {
|
||||
s->print_cr("%s:", title);
|
||||
s->print_cr("GC Task Stats %s", title);
|
||||
for (uint i = 0; i < ARRAY_SIZE(stats_hdr); ++i) {
|
||||
s->print_cr("%s", stats_hdr[i]);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user