annotate src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp @ 20504:6948da6d7c13

8052172: Evacuation failure handling in G1 does not evacuate all objects if -XX:-G1DeferredRSUpdate is set Summary: Remove -XX:-G1DeferredRSUpdate functionality as it is racy. During evacuation failure handling, threads where evacuation failure handling occurred may try to add remembered sets to regions which remembered sets are currently being scanned. The iterator to handle the remembered set scan does not support addition of entries during scan and so may skip valid references. Reviewed-by: iveresov, brutisso, mgerdin
author tschatzl
date Tue, 30 Sep 2014 09:44:36 +0200
parents 7baf47cb97cb
children
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;
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
123 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
124 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
125 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
126 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
127 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
128 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
129
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
130 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
131 double _cur_collection_code_root_fixup_time_ms;
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
132 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
133
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
134 double _cur_evac_fail_recalc_used;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
135 double _cur_evac_fail_restore_remsets;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
136 double _cur_evac_fail_remove_self_forwards;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
137
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
138 double _cur_string_dedup_fixup_time_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
139 WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
140 WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
141
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
142 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
143 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
144 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
145
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
146 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
147 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
148
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
149 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
150 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
151
20216
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
152 WorkerDataArray<double> _last_redirty_logged_cards_time_ms;
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
153 WorkerDataArray<size_t> _last_redirty_logged_cards_processed_cards;
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
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
159 double _cur_fast_reclaim_humongous_time_ms;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
160 size_t _cur_fast_reclaim_humongous_total;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
161 size_t _cur_fast_reclaim_humongous_candidates;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
162 size_t _cur_fast_reclaim_humongous_reclaimed;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
163
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
164 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
165 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
166
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
167 // 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
168 void print_stats(int level, const char* str, double value);
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
169 void print_stats(int level, const char* str, size_t value);
17844
8847586c9037 8016302: Change type of the number of GC workers to unsigned int (2)
vkempik
parents: 17764
diff changeset
170 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
171
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
172 public:
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
173 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
174 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
175 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
176 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
177
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
178 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
179 _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
180 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
181
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
182 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
183 _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
184 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
185
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
186 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
187 _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
188 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
189
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
190 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
191 _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
192 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
193
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
194 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
195 _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
196 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
197
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
198 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
199 _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
200 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
201
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
202 void record_strong_code_root_scan_time(uint worker_i, double ms) {
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
203 _last_strong_code_root_scan_times_ms.set(worker_i, ms);
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
204 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
205
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
206 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
207 _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
208 }
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
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
210 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
211 _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
212 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
213
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
214 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
215 _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
216 _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
217 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
218
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
219 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
220 _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
221 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
222
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
223 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
224 _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
225 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
226
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
227 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
228 _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
229 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
230
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
231 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
232 _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
233 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
234
17753
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
235 void record_strong_code_root_purge_time(double ms) {
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
236 _cur_strong_code_root_purge_time_ms = ms;
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
237 }
191174b49bec 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 12080
diff changeset
238
17757
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
239 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
240 _cur_evac_fail_recalc_used = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
241 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
242
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
243 void record_evac_fail_restore_remsets(double ms) {
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
244 _cur_evac_fail_restore_remsets = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
245 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
246
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
247 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
248 _cur_evac_fail_remove_self_forwards = ms;
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
249 }
eff02b5bd56c 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 17756
diff changeset
250
17764
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
251 void note_string_dedup_fixup_start();
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
252 void note_string_dedup_fixup_end();
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
253
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
254 void record_string_dedup_fixup_time(double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
255 _cur_string_dedup_fixup_time_ms = ms;
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
256 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
257
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
258 void record_string_dedup_queue_fixup_worker_time(uint worker_id, double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
259 _cur_string_dedup_queue_fixup_worker_times_ms.set(worker_id, ms);
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
260 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
261
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
262 void record_string_dedup_table_fixup_worker_time(uint worker_id, double ms) {
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
263 _cur_string_dedup_table_fixup_worker_times_ms.set(worker_id, ms);
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
264 }
595c0f60d50d 8029075: String deduplication in G1
pliden
parents: 17757
diff changeset
265
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
266 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
267 _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
268 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
269
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
270 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
271 _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
272 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
273
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
274 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
275 _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
276 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
277
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
278 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
279 _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
280 }
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
281
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
282 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
283 _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
284 }
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
285
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
286 void record_fast_reclaim_humongous_stats(size_t total, size_t candidates) {
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
287 _cur_fast_reclaim_humongous_total = total;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
288 _cur_fast_reclaim_humongous_candidates = candidates;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
289 }
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
290
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
291 void record_fast_reclaim_humongous_time_ms(double value, size_t reclaimed) {
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
292 _cur_fast_reclaim_humongous_time_ms = value;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
293 _cur_fast_reclaim_humongous_reclaimed = reclaimed;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
294 }
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
295
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
296 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
297 _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
298 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
299
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_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
301 _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
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
20216
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
304 void record_redirty_logged_cards_time_ms(uint worker_i, double time_ms) {
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
305 _last_redirty_logged_cards_time_ms.set(worker_i, time_ms);
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
306 }
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
307
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
308 void record_redirty_logged_cards_processed_cards(uint worker_i, size_t processed_buffers) {
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
309 _last_redirty_logged_cards_processed_cards.set(worker_i, processed_buffers);
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
310 }
570cb6369f17 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 17844
diff changeset
311
17756
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
312 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
313 _recorded_redirty_logged_cards_time_ms = time_ms;
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
314 }
a07bea31ef35 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 17753
diff changeset
315
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
316 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
317 _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
318 }
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
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 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
321 _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
322 }
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
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 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
325 _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
326 }
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
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 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
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 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
331 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
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 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
335 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
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 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
339 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
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 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
343 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
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 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
347 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
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 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
351 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
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 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
355 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
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
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
358 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
359 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
360 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
361
20296
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
362 double fast_reclaim_humongous_time_ms() {
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
363 return _cur_fast_reclaim_humongous_time_ms;
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
diff changeset
364 }
a3953c777565 8027959: Early reclamation of large objects in G1
tschatzl
parents: 20278
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_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
367 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
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 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
371 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
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_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
375 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
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
12080
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
378 double average_last_strong_code_root_scan_time(){
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
379 return _last_strong_code_root_scan_times_ms.average();
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
380 }
5888334c9c24 7145569: G1: optimize nmethods scanning
johnc
parents: 10405
diff changeset
381
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
382 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
383 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
384 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
385
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
386 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
387 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
388 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
389
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
390 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
391 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
392 }
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
393
bb3f6194fedb 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 6220
diff changeset
394 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
395 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
396 }
6219
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
397 };
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
398
922993931b3d 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
399 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP