hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
changeset 11455 a6ab3d8b9a4c
parent 11397 7dc5c8f572b0
child 11576 e0bef5ca4602
equal deleted inserted replaced
11454:c1d5bb1d6389 11455:a6ab3d8b9a4c
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    65 
    65 
    66 class MainBodySummary: public CHeapObj {
    66 class MainBodySummary: public CHeapObj {
    67   define_num_seq(satb_drain) // optional
    67   define_num_seq(satb_drain) // optional
    68   define_num_seq(parallel) // parallel only
    68   define_num_seq(parallel) // parallel only
    69     define_num_seq(ext_root_scan)
    69     define_num_seq(ext_root_scan)
    70     define_num_seq(mark_stack_scan)
    70     define_num_seq(satb_filtering)
    71     define_num_seq(update_rs)
    71     define_num_seq(update_rs)
    72     define_num_seq(scan_rs)
    72     define_num_seq(scan_rs)
    73     define_num_seq(obj_copy)
    73     define_num_seq(obj_copy)
    74     define_num_seq(termination) // parallel only
    74     define_num_seq(termination) // parallel only
    75     define_num_seq(parallel_other) // parallel only
    75     define_num_seq(parallel_other) // parallel only
   213   double*    _cur_aux_times_ms;
   213   double*    _cur_aux_times_ms;
   214   bool*      _cur_aux_times_set;
   214   bool*      _cur_aux_times_set;
   215 
   215 
   216   double* _par_last_gc_worker_start_times_ms;
   216   double* _par_last_gc_worker_start_times_ms;
   217   double* _par_last_ext_root_scan_times_ms;
   217   double* _par_last_ext_root_scan_times_ms;
   218   double* _par_last_mark_stack_scan_times_ms;
   218   double* _par_last_satb_filtering_times_ms;
   219   double* _par_last_update_rs_times_ms;
   219   double* _par_last_update_rs_times_ms;
   220   double* _par_last_update_rs_processed_buffers;
   220   double* _par_last_update_rs_processed_buffers;
   221   double* _par_last_scan_rs_times_ms;
   221   double* _par_last_scan_rs_times_ms;
   222   double* _par_last_obj_copy_times_ms;
   222   double* _par_last_obj_copy_times_ms;
   223   double* _par_last_termination_times_ms;
   223   double* _par_last_termination_times_ms;
   839 
   839 
   840   void record_ext_root_scan_time(int worker_i, double ms) {
   840   void record_ext_root_scan_time(int worker_i, double ms) {
   841     _par_last_ext_root_scan_times_ms[worker_i] = ms;
   841     _par_last_ext_root_scan_times_ms[worker_i] = ms;
   842   }
   842   }
   843 
   843 
   844   void record_mark_stack_scan_time(int worker_i, double ms) {
   844   void record_satb_filtering_time(int worker_i, double ms) {
   845     _par_last_mark_stack_scan_times_ms[worker_i] = ms;
   845     _par_last_satb_filtering_times_ms[worker_i] = ms;
   846   }
   846   }
   847 
   847 
   848   void record_satb_drain_time(double ms) {
   848   void record_satb_drain_time(double ms) {
   849     assert(_g1->mark_in_progress(), "shouldn't be here otherwise");
   849     assert(_g1->mark_in_progress(), "shouldn't be here otherwise");
   850     _cur_satb_drain_time_ms = ms;
   850     _cur_satb_drain_time_ms = ms;
  1144 
  1144 
  1145   void note_stop_adding_survivor_regions() {
  1145   void note_stop_adding_survivor_regions() {
  1146     _survivor_surv_rate_group->stop_adding_regions();
  1146     _survivor_surv_rate_group->stop_adding_regions();
  1147   }
  1147   }
  1148 
  1148 
       
  1149   void tenure_all_objects() {
       
  1150     _max_survivor_regions = 0;
       
  1151     _tenuring_threshold = 0;
       
  1152   }
       
  1153 
  1149   void record_survivor_regions(size_t      regions,
  1154   void record_survivor_regions(size_t      regions,
  1150                                HeapRegion* head,
  1155                                HeapRegion* head,
  1151                                HeapRegion* tail) {
  1156                                HeapRegion* tail) {
  1152     _recorded_survivor_regions = regions;
  1157     _recorded_survivor_regions = regions;
  1153     _recorded_survivor_head    = head;
  1158     _recorded_survivor_head    = head;