hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp
author tschatzl
Wed, 07 Jan 2015 15:15:37 +0100
changeset 28379 e6784fc8fff2
parent 27880 afb974a04396
child 29680 e5203ed6d805
permissions -rw-r--r--
8048179: Early reclaim of large objects that are referenced by a few objects Summary: Push the remembered sets of large objects with few referenced into the dirty card queue at the beginning of the evacuation so that they may end up with zero remembered set entries at the end of the collection, and are potentially reclaimed. Also improve timing measurements of the early reclaim mechanism, and shorten flag names. Reviewed-by: brutisso, jmasa, dfazunen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
     1
/*
23451
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
     2
 * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
13288
331d5b6725f3 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.
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
     4
 *
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 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.
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
     8
 *
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    13
 * accompanied this code).
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    14
 *
331d5b6725f3 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
331d5b6725f3 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,
331d5b6725f3 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.
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    18
 *
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    21
 * questions.
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    22
 *
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    23
 */
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    24
331d5b6725f3 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
331d5b6725f3 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
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    27
331d5b6725f3 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"
331d5b6725f3 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"
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
    30
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    31
template <class T>
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    32
class WorkerDataArray  : public CHeapObj<mtGC> {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    33
  T*          _data;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    34
  uint        _length;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    35
  const char* _print_format;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    36
  bool        _print_sum;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    37
15238
2a5f251cc9ad 8006242: G1: WorkerDataArray<T>::verify() too strict for double calculations
brutisso
parents: 13516
diff changeset
    38
  NOT_PRODUCT(static const T _uninitialized;)
2a5f251cc9ad 8006242: G1: WorkerDataArray<T>::verify() too strict for double calculations
brutisso
parents: 13516
diff changeset
    39
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    40
  // We are caching the sum and average to only have to calculate them once.
18025
b7bcf7497f93 8005849: JEP 167: Event-Based JVM Tracing
sla
parents: 17327
diff changeset
    41
  // This is not done in an MT-safe way. It is intended to allow single
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    42
  // threaded code to call sum() and average() multiple times in any order
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    43
  // without having to worry about the cost.
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    44
  bool   _has_new_data;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    45
  T      _sum;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    46
  double _average;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    47
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    48
 public:
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    49
  WorkerDataArray(uint length, const char* print_format, bool print_sum = true) :
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    50
  _length(length), _print_format(print_format), _print_sum(print_sum), _has_new_data(true) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    51
    assert(length > 0, "Must have some workers to store data for");
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    52
    _data = NEW_C_HEAP_ARRAY(T, _length, mtGC);
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    53
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    54
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    55
  ~WorkerDataArray() {
27880
afb974a04396 8060074: os::free() takes MemoryTrackingLevel but doesn't need it
coleenp
parents: 26422
diff changeset
    56
    FREE_C_HEAP_ARRAY(T, _data);
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    57
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    58
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    59
  void set(uint worker_i, T value) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    60
    assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    61
    assert(_data[worker_i] == (T)-1, err_msg("Overwriting data for worker %d", worker_i));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    62
    _data[worker_i] = value;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    63
    _has_new_data = true;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    64
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    65
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    66
  T get(uint worker_i) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    67
    assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    68
    assert(_data[worker_i] != (T)-1, err_msg("No data to add to for worker %d", worker_i));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    69
    return _data[worker_i];
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    70
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    71
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    72
  void add(uint worker_i, T value) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    73
    assert(worker_i < _length, err_msg("Worker %d is greater than max: %d", worker_i, _length));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    74
    assert(_data[worker_i] != (T)-1, err_msg("No data to add to for worker %d", worker_i));
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    75
    _data[worker_i] += value;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    76
    _has_new_data = true;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    77
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    78
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    79
  double average(){
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    80
    if (_has_new_data) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    81
      calculate_totals();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    82
    }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    83
    return _average;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    84
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    85
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    86
  T sum() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    87
    if (_has_new_data) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    88
      calculate_totals();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    89
    }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    90
    return _sum;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    91
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    92
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    93
  void print(int level, const char* title);
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    94
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    95
  void reset() PRODUCT_RETURN;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    96
  void verify() PRODUCT_RETURN;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    97
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    98
 private:
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
    99
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   100
  void calculate_totals(){
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   101
    _sum = (T)0;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   102
    for (uint i = 0; i < _length; ++i) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   103
      _sum += _data[i];
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   104
    }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   105
    _average = (double)_sum / (double)_length;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   106
    _has_new_data = false;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   107
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   108
};
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   109
13289
jmasa
parents: 13288
diff changeset
   110
class G1GCPhaseTimes : public CHeapObj<mtGC> {
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   111
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   112
 private:
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   115
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   116
  WorkerDataArray<double> _last_gc_worker_start_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   117
  WorkerDataArray<double> _last_ext_root_scan_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   118
  WorkerDataArray<double> _last_satb_filtering_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   119
  WorkerDataArray<double> _last_update_rs_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   120
  WorkerDataArray<int>    _last_update_rs_processed_buffers;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   121
  WorkerDataArray<double> _last_scan_rs_times_ms;
19339
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   122
  WorkerDataArray<double> _last_strong_code_root_scan_times_ms;
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   123
  WorkerDataArray<double> _last_obj_copy_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   124
  WorkerDataArray<double> _last_termination_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   125
  WorkerDataArray<size_t> _last_termination_attempts;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   126
  WorkerDataArray<double> _last_gc_worker_end_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   127
  WorkerDataArray<double> _last_gc_worker_times_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   128
  WorkerDataArray<double> _last_gc_worker_other_times_ms;
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   129
331d5b6725f3 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;
331d5b6725f3 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;
23451
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
   132
  double _cur_strong_code_root_purge_time_ms;
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   133
23455
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   134
  double _cur_evac_fail_recalc_used;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   135
  double _cur_evac_fail_restore_remsets;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   136
  double _cur_evac_fail_remove_self_forwards;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   137
23472
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   138
  double                  _cur_string_dedup_fixup_time_ms;
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   139
  WorkerDataArray<double> _cur_string_dedup_queue_fixup_worker_times_ms;
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   140
  WorkerDataArray<double> _cur_string_dedup_table_fixup_worker_times_ms;
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   141
13288
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   145
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   148
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   151
24104
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   152
  WorkerDataArray<double> _last_redirty_logged_cards_time_ms;
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   153
  WorkerDataArray<size_t> _last_redirty_logged_cards_processed_cards;
23454
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   154
  double _recorded_redirty_logged_cards_time_ms;
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   155
13288
331d5b6725f3 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;
331d5b6725f3 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;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   158
25889
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   159
  double _cur_fast_reclaim_humongous_time_ms;
28379
e6784fc8fff2 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 27880
diff changeset
   160
  double _cur_fast_reclaim_humongous_register_time_ms;
25889
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   161
  size_t _cur_fast_reclaim_humongous_total;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   162
  size_t _cur_fast_reclaim_humongous_candidates;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   163
  size_t _cur_fast_reclaim_humongous_reclaimed;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   164
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   165
  double _cur_verify_before_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   166
  double _cur_verify_after_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   167
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   168
  // Helper methods for detailed logging
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   169
  void print_stats(int level, const char* str, double value);
25889
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   170
  void print_stats(int level, const char* str, size_t value);
23855
c4574075402c 8016302: Change type of the number of GC workers to unsigned int (2)
vkempik
parents: 23472
diff changeset
   171
  void print_stats(int level, const char* str, double value, uint workers);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   172
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   173
 public:
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   174
  G1GCPhaseTimes(uint max_gc_threads);
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   175
  void note_gc_start(uint active_gc_threads);
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   176
  void note_gc_end();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   177
  void print(double pause_time_sec);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   178
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   179
  void record_gc_worker_start_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   180
    _last_gc_worker_start_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   181
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   182
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   183
  void record_ext_root_scan_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   184
    _last_ext_root_scan_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   185
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   186
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   187
  void record_satb_filtering_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   188
    _last_satb_filtering_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   189
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   190
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   191
  void record_update_rs_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   192
    _last_update_rs_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   193
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   194
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   195
  void record_update_rs_processed_buffers(uint worker_i, int processed_buffers) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   196
    _last_update_rs_processed_buffers.set(worker_i, processed_buffers);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   197
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   198
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   199
  void record_scan_rs_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   200
    _last_scan_rs_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   201
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   202
19339
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   203
  void record_strong_code_root_scan_time(uint worker_i, double ms) {
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   204
    _last_strong_code_root_scan_times_ms.set(worker_i, ms);
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   205
  }
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   206
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   207
  void record_obj_copy_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   208
    _last_obj_copy_times_ms.set(worker_i, ms);
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   209
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   210
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   211
  void add_obj_copy_time(uint worker_i, double ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   212
    _last_obj_copy_times_ms.add(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   213
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   214
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   215
  void record_termination(uint worker_i, double ms, size_t attempts) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   216
    _last_termination_times_ms.set(worker_i, ms);
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   217
    _last_termination_attempts.set(worker_i, attempts);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   218
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   219
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   220
  void record_gc_worker_end_time(uint worker_i, double ms) {
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   221
    _last_gc_worker_end_times_ms.set(worker_i, ms);
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   222
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   223
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   224
  void record_clear_ct_time(double ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   225
    _cur_clear_ct_time_ms = ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   226
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   227
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   228
  void record_par_time(double ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   229
    _cur_collection_par_time_ms = ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   230
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   231
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   232
  void record_code_root_fixup_time(double ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   233
    _cur_collection_code_root_fixup_time_ms = ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   234
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   235
23451
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
   236
  void record_strong_code_root_purge_time(double ms) {
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
   237
    _cur_strong_code_root_purge_time_ms = ms;
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
   238
  }
ed2b8bb28fed 8035406: Improve data structure for Code Cache remembered sets
tschatzl
parents: 19339
diff changeset
   239
23455
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   240
  void record_evac_fail_recalc_used_time(double ms) {
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   241
    _cur_evac_fail_recalc_used = ms;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   242
  }
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   243
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   244
  void record_evac_fail_restore_remsets(double ms) {
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   245
    _cur_evac_fail_restore_remsets = ms;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   246
  }
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   247
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   248
  void record_evac_fail_remove_self_forwards(double ms) {
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   249
    _cur_evac_fail_remove_self_forwards = ms;
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   250
  }
e541bff96524 8035654: Add times for evacuation failure handling in "Other" time
tschatzl
parents: 23454
diff changeset
   251
23472
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   252
  void note_string_dedup_fixup_start();
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   253
  void note_string_dedup_fixup_end();
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   254
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   255
  void record_string_dedup_fixup_time(double ms) {
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   256
    _cur_string_dedup_fixup_time_ms = ms;
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   257
  }
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   258
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   259
  void record_string_dedup_queue_fixup_worker_time(uint worker_id, double ms) {
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   260
    _cur_string_dedup_queue_fixup_worker_times_ms.set(worker_id, ms);
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   261
  }
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   262
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   263
  void record_string_dedup_table_fixup_worker_time(uint worker_id, double ms) {
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   264
    _cur_string_dedup_table_fixup_worker_times_ms.set(worker_id, ms);
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   265
  }
35e93890ed88 8029075: String deduplication in G1
pliden
parents: 23455
diff changeset
   266
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   267
  void record_ref_proc_time(double ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   268
    _cur_ref_proc_time_ms = ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   269
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   270
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   271
  void record_ref_enq_time(double ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   272
    _cur_ref_enq_time_ms = ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   273
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   274
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   275
  void record_root_region_scan_wait_time(double time_ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   276
    _root_region_scan_wait_time_ms = time_ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   277
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   278
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   279
  void record_young_free_cset_time_ms(double time_ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   280
    _recorded_young_free_cset_time_ms = time_ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   281
  }
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   282
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   283
  void record_non_young_free_cset_time_ms(double time_ms) {
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   284
    _recorded_non_young_free_cset_time_ms = time_ms;
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   285
  }
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   286
28379
e6784fc8fff2 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 27880
diff changeset
   287
  void record_fast_reclaim_humongous_stats(double time_ms, size_t total, size_t candidates) {
e6784fc8fff2 8048179: Early reclaim of large objects that are referenced by a few objects
tschatzl
parents: 27880
diff changeset
   288
    _cur_fast_reclaim_humongous_register_time_ms = time_ms;
25889
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   289
    _cur_fast_reclaim_humongous_total = total;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   290
    _cur_fast_reclaim_humongous_candidates = candidates;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   291
  }
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   292
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   293
  void record_fast_reclaim_humongous_time_ms(double value, size_t reclaimed) {
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   294
    _cur_fast_reclaim_humongous_time_ms = value;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   295
    _cur_fast_reclaim_humongous_reclaimed = reclaimed;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   296
  }
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   297
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   298
  void record_young_cset_choice_time_ms(double time_ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   299
    _recorded_young_cset_choice_time_ms = time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   300
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   301
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   302
  void record_non_young_cset_choice_time_ms(double time_ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   303
    _recorded_non_young_cset_choice_time_ms = time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   304
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   305
24104
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   306
  void record_redirty_logged_cards_time_ms(uint worker_i, double time_ms) {
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   307
    _last_redirty_logged_cards_time_ms.set(worker_i, time_ms);
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   308
  }
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   309
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   310
  void record_redirty_logged_cards_processed_cards(uint worker_i, size_t processed_buffers) {
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   311
    _last_redirty_logged_cards_processed_cards.set(worker_i, processed_buffers);
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   312
  }
febf9363fb68 8019342: G1: High "Other" time most likely due to card redirtying
tschatzl
parents: 23855
diff changeset
   313
23454
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   314
  void record_redirty_logged_cards_time_ms(double time_ms) {
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   315
    _recorded_redirty_logged_cards_time_ms = time_ms;
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   316
  }
13a3b426f64d 8035398: Add card redirty time in "Other" time in G1
tschatzl
parents: 23451
diff changeset
   317
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   318
  void record_cur_collection_start_sec(double time_ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   319
    _cur_collection_start_sec = time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   320
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   321
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   322
  void record_verify_before_time_ms(double time_ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   323
    _cur_verify_before_time_ms = time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   324
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   325
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   326
  void record_verify_after_time_ms(double time_ms) {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   327
    _cur_verify_after_time_ms = time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   328
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   329
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   330
  double accounted_time_ms();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   331
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   332
  double cur_collection_start_sec() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   333
    return _cur_collection_start_sec;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   334
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   335
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   336
  double cur_collection_par_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   337
    return _cur_collection_par_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   338
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   339
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   340
  double cur_clear_ct_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   341
    return _cur_clear_ct_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   342
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   343
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   344
  double root_region_scan_wait_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   345
    return _root_region_scan_wait_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   346
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   347
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   348
  double young_cset_choice_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   349
    return _recorded_young_cset_choice_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   350
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   351
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   352
  double young_free_cset_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   353
    return _recorded_young_free_cset_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   354
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   355
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   356
  double non_young_cset_choice_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   357
    return _recorded_non_young_cset_choice_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   358
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   359
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   360
  double non_young_free_cset_time_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   361
    return _recorded_non_young_free_cset_time_ms;
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   362
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   363
25889
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   364
  double fast_reclaim_humongous_time_ms() {
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   365
    return _cur_fast_reclaim_humongous_time_ms;
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   366
  }
221296ac4359 8027959: Early reclamation of large objects in G1
tschatzl
parents: 25492
diff changeset
   367
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   368
  double average_last_update_rs_time() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   369
    return _last_update_rs_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   370
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   371
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   372
  int sum_last_update_rs_processed_buffers() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   373
    return _last_update_rs_processed_buffers.sum();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   374
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   375
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   376
  double average_last_scan_rs_time(){
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   377
    return _last_scan_rs_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   378
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   379
19339
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   380
  double average_last_strong_code_root_scan_time(){
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   381
    return _last_strong_code_root_scan_times_ms.average();
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   382
  }
d247781beec7 7145569: G1: optimize nmethods scanning
johnc
parents: 18025
diff changeset
   383
13516
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   384
  double average_last_obj_copy_time() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   385
    return _last_obj_copy_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   386
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   387
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   388
  double average_last_termination_time() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   389
    return _last_termination_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   390
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   391
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   392
  double average_last_ext_root_scan_time() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   393
    return _last_ext_root_scan_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   394
  }
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   395
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   396
  double average_last_satb_filtering_times_ms() {
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   397
    return _last_satb_filtering_times_ms.average();
f7adc27fb367 7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code
brutisso
parents: 13289
diff changeset
   398
  }
13288
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   399
};
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   400
331d5b6725f3 7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause
brutisso
parents:
diff changeset
   401
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1GCPHASETIMESLOG_HPP