annotate src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp @ 20211:82693fb204a5

8038930: G1CodeRootSet::test fails with assert(_num_chunks_handed_out == 0) failed: No elements must have been handed out yet Summary: The test incorrectly assumed that it had been started with no other previous compilation activity. Fix this by allowing multiple code root free chunk lists, and use one separate from the global one to perform the test. Reviewed-by: brutisso
author tschatzl
date Wed, 16 Apr 2014 10:14:50 +0200
parents 8847586c9037
children 570cb6369f17
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
1 /*
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
2 * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
4 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
7 * published by the Free Software Foundation.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
8 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
13 * accompanied this code).
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
14 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
18 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
21 * questions.
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
22 *
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
23 */
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
24
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
27
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
28 #include "memory/allocation.hpp"
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
29 #include "gc_interface/gcCause.hpp"
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
30
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
31 template <class T>
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
32 class WorkerDataArray : public CHeapObj<mtGC> {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
33 T* _data;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
34 uint _length;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
35 const char* _print_format;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
36 bool _print_sum;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
37
7633
7df93f7c14a5 8006242: G1: WorkerDataArray<T>::verify() too strict for double calculations
brutisso
parents: 6628
diff changeset
38 NOT_PRODUCT(static const T _uninitialized;)
7df93f7c14a5 8006242: G1: WorkerDataArray<T>::verify() too strict for double calculations
brutisso
parents: 6628
diff changeset
39
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
40 // We are caching the sum and average to only have to calculate them once.
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents: 10246
diff changeset
41 // This is not done in an MT-safe way. It is intended to allow single
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
42 // threaded code to call sum() and average() multiple times in any order
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
43 // without having to worry about the cost.
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
44 bool _has_new_data;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
45 T _sum;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
46 double _average;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
47
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
48 public:
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
49 WorkerDataArray(uint length, const char* print_format, bool print_sum = true) :
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
50 _length(length), _print_format(print_format), _print_sum(print_sum), _has_new_data(true) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
51 assert(length > 0, "Must have some workers to store data for");
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
52 _data = NEW_C_HEAP_ARRAY(T, _length, mtGC);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
53 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
54
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
55 ~WorkerDataArray() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
56 FREE_C_HEAP_ARRAY(T, _data, mtGC);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
57 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
58
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
59 void set(uint worker_i, T value) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
60 assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
61 assert(_data[worker_i] == (T)-1, err_msg("Overwriting data for worker %d", worker_i));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
62 _data[worker_i] = value;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
63 _has_new_data = true;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
64 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
65
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
66 T get(uint worker_i) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
67 assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
68 assert(_data[worker_i] != (T)-1, err_msg("No data to add to for worker %d", worker_i));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
69 return _data[worker_i];
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
70 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
71
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
72 void add(uint worker_i, T value) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
73 assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
74 assert(_data[worker_i] != (T)-1, err_msg("No data to add to for worker %d", worker_i));
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
75 _data[worker_i] += value;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
76 _has_new_data = true;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
77 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
78
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
79 double average(){
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
80 if (_has_new_data) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
81 calculate_totals();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
82 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
83 return _average;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
84 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
85
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
86 T sum() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
87 if (_has_new_data) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
88 calculate_totals();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
89 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
90 return _sum;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
91 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
92
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
93 void print(int level, const char* title);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
94
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
95 void reset() PRODUCT_RETURN;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
96 void verify() PRODUCT_RETURN;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
97
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
98 private:
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
99
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
100 void calculate_totals(){
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
101 _sum = (T)0;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
102 for (uint i = 0; i < _length; ++i) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
103 _sum += _data[i];
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
104 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
105 _average = (double)_sum / (double)_length;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
106 _has_new_data = false;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
107 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
108 };
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
109
6220
jmasa
parents: 6219
diff changeset
110 class G1GCPhaseTimes : public CHeapObj<mtGC> {
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
111
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
112 private:
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
113 uint _active_gc_threads;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
114 uint _max_gc_threads;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
115
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
116 WorkerDataArray<double> _last_gc_worker_start_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
117 WorkerDataArray<double> _last_ext_root_scan_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
118 WorkerDataArray<double> _last_satb_filtering_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
119 WorkerDataArray<double> _last_update_rs_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
120 WorkerDataArray<int> _last_update_rs_processed_buffers;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
121 WorkerDataArray<double> _last_scan_rs_times_ms;
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
122 WorkerDataArray<double> _last_strong_code_root_scan_times_ms;
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
123 WorkerDataArray<double> _last_strong_code_root_mark_times_ms;
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
124 WorkerDataArray<double> _last_obj_copy_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
125 WorkerDataArray<double> _last_termination_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
126 WorkerDataArray<size_t> _last_termination_attempts;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
127 WorkerDataArray<double> _last_gc_worker_end_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
128 WorkerDataArray<double> _last_gc_worker_times_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
129 WorkerDataArray<double> _last_gc_worker_other_times_ms;
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
130
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
131 double _cur_collection_par_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
132 double _cur_collection_code_root_fixup_time_ms;
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
133 double _cur_strong_code_root_migration_time_ms;
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
134 double _cur_strong_code_root_purge_time_ms;
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
135
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
136 double _cur_evac_fail_recalc_used;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
137 double _cur_evac_fail_restore_remsets;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
138 double _cur_evac_fail_remove_self_forwards;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
139
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
140 double _cur_string_dedup_fixup_time_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
141 WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
142 WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
143
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
144 double _cur_clear_ct_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
145 double _cur_ref_proc_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
146 double _cur_ref_enq_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
147
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
148 double _cur_collection_start_sec;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
149 double _root_region_scan_wait_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
150
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
151 double _recorded_young_cset_choice_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
152 double _recorded_non_young_cset_choice_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
153
17756
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
154 double _recorded_redirty_logged_cards_time_ms;
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
155
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
156 double _recorded_young_free_cset_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
157 double _recorded_non_young_free_cset_time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
158
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
159 double _cur_verify_before_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
160 double _cur_verify_after_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
161
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
162 // Helper methods for detailed logging
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
163 void print_stats(int level, const char* str, double value);
17844
8847586c9037 8016302: Change type of the number of GC workers to unsigned int (2)
vkempik
parents: 17764
diff changeset
164 void print_stats(int level, const char* str, double value, uint workers);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
165
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
166 public:
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
167 G1GCPhaseTimes(uint max_gc_threads);
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
168 void note_gc_start(uint active_gc_threads);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
169 void note_gc_end();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
170 void print(double pause_time_sec);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
171
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
172 void record_gc_worker_start_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
173 _last_gc_worker_start_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
174 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
175
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
176 void record_ext_root_scan_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
177 _last_ext_root_scan_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
178 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
179
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
180 void record_satb_filtering_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
181 _last_satb_filtering_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
182 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
183
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
184 void record_update_rs_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
185 _last_update_rs_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
186 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
187
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
188 void record_update_rs_processed_buffers(uint worker_i, int processed_buffers) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
189 _last_update_rs_processed_buffers.set(worker_i, processed_buffers);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
190 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
191
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
192 void record_scan_rs_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
193 _last_scan_rs_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
194 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
195
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
196 void record_strong_code_root_scan_time(uint worker_i, double ms) {
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
197 _last_strong_code_root_scan_times_ms.set(worker_i, ms);
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
198 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
199
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
200 void record_strong_code_root_mark_time(uint worker_i, double ms) {
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
201 _last_strong_code_root_mark_times_ms.set(worker_i, ms);
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
202 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
203
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
204 void record_obj_copy_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
205 _last_obj_copy_times_ms.set(worker_i, ms);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
206 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
207
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
208 void add_obj_copy_time(uint worker_i, double ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
209 _last_obj_copy_times_ms.add(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
210 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
211
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
212 void record_termination(uint worker_i, double ms, size_t attempts) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
213 _last_termination_times_ms.set(worker_i, ms);
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
214 _last_termination_attempts.set(worker_i, attempts);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
215 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
216
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
217 void record_gc_worker_end_time(uint worker_i, double ms) {
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
218 _last_gc_worker_end_times_ms.set(worker_i, ms);
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
219 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
220
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
221 void record_clear_ct_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
222 _cur_clear_ct_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
223 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
224
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
225 void record_par_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
226 _cur_collection_par_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
227 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
228
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
229 void record_code_root_fixup_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
230 _cur_collection_code_root_fixup_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
231 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
232
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
233 void record_strong_code_root_migration_time(double ms) {
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
234 _cur_strong_code_root_migration_time_ms = ms;
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
235 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
236
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
237 void record_strong_code_root_purge_time(double ms) {
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
238 _cur_strong_code_root_purge_time_ms = ms;
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
239 }
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
240
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
241 void record_evac_fail_recalc_used_time(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
242 _cur_evac_fail_recalc_used = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
243 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
244
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
245 void record_evac_fail_restore_remsets(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
246 _cur_evac_fail_restore_remsets = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
247 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
248
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
249 void record_evac_fail_remove_self_forwards(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
250 _cur_evac_fail_remove_self_forwards = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
251 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
252
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
253 void note_string_dedup_fixup_start();
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
254 void note_string_dedup_fixup_end();
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
255
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
256 void record_string_dedup_fixup_time(double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
257 _cur_string_dedup_fixup_time_ms = ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
258 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
259
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
260 void record_string_dedup_queue_fixup_worker_time(uint worker_id, double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
261 _cur_string_dedup_queue_fixup_worker_times_ms.set(worker_id, ms);
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
262 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
263
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
264 void record_string_dedup_table_fixup_worker_time(uint worker_id, double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
265 _cur_string_dedup_table_fixup_worker_times_ms.set(worker_id, ms);
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
266 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
267
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
268 void record_ref_proc_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
269 _cur_ref_proc_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
270 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
271
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
272 void record_ref_enq_time(double ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
273 _cur_ref_enq_time_ms = ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
274 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
275
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
276 void record_root_region_scan_wait_time(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
277 _root_region_scan_wait_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
278 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
279
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
280 void record_young_free_cset_time_ms(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
281 _recorded_young_free_cset_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
282 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
283
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
284 void record_non_young_free_cset_time_ms(double time_ms) {
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
285 _recorded_non_young_free_cset_time_ms = time_ms;
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
286 }
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
287
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
288 void record_young_cset_choice_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
289 _recorded_young_cset_choice_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
290 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
291
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
292 void record_non_young_cset_choice_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
293 _recorded_non_young_cset_choice_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
294 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
295
17756
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
296 void record_redirty_logged_cards_time_ms(double time_ms) {
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
297 _recorded_redirty_logged_cards_time_ms = time_ms;
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
298 }
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
299
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
300 void record_cur_collection_start_sec(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
301 _cur_collection_start_sec = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
302 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
303
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
304 void record_verify_before_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
305 _cur_verify_before_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
306 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
307
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
308 void record_verify_after_time_ms(double time_ms) {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
309 _cur_verify_after_time_ms = time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
310 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
311
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
312 double accounted_time_ms();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
313
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
314 double cur_collection_start_sec() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
315 return _cur_collection_start_sec;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
316 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
317
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
318 double cur_collection_par_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
319 return _cur_collection_par_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
320 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
321
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
322 double cur_clear_ct_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
323 return _cur_clear_ct_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
324 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
325
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
326 double root_region_scan_wait_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
327 return _root_region_scan_wait_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
328 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
329
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
330 double young_cset_choice_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
331 return _recorded_young_cset_choice_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
332 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
333
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
334 double young_free_cset_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
335 return _recorded_young_free_cset_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
336 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
337
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
338 double non_young_cset_choice_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
339 return _recorded_non_young_cset_choice_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
340 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
341
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
342 double non_young_free_cset_time_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
343 return _recorded_non_young_free_cset_time_ms;
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
344 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
345
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
346 double average_last_update_rs_time() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
347 return _last_update_rs_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
348 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
349
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
350 int sum_last_update_rs_processed_buffers() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
351 return _last_update_rs_processed_buffers.sum();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
352 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
353
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
354 double average_last_scan_rs_time(){
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
355 return _last_scan_rs_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
356 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
357
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
358 double average_last_strong_code_root_scan_time(){
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
359 return _last_strong_code_root_scan_times_ms.average();
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
360 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
361
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
362 double average_last_strong_code_root_mark_time(){
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
363 return _last_strong_code_root_mark_times_ms.average();
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
364 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
365
6628
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
366 double average_last_obj_copy_time() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
367 return _last_obj_copy_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
368 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
369
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
370 double average_last_termination_time() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
371 return _last_termination_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
372 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
373
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
374 double average_last_ext_root_scan_time() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
375 return _last_ext_root_scan_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
376 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
377
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
378 double average_last_satb_filtering_times_ms() {
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
379 return _last_satb_filtering_times_ms.average();
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
380 }
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
381 };
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
382
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
383 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP