src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp
changeset 47790 4925ee84b4ac
parent 47789 a77a7d3bc4f6
child 48103 26dbe08d1c17
equal deleted inserted replaced
47789:a77a7d3bc4f6 47790:4925ee84b4ac
    29 #include "utilities/globalDefinitions.hpp"
    29 #include "utilities/globalDefinitions.hpp"
    30 
    30 
    31 // Forward decl
    31 // Forward decl
    32 class CardTableEntryClosure;
    32 class CardTableEntryClosure;
    33 class G1ConcurrentRefineThread;
    33 class G1ConcurrentRefineThread;
    34 class G1YoungRemSetSamplingThread;
       
    35 class outputStream;
    34 class outputStream;
    36 class ThreadClosure;
    35 class ThreadClosure;
    37 
    36 
    38 class G1ConcurrentRefine : public CHeapObj<mtGC> {
    37 class G1ConcurrentRefine : public CHeapObj<mtGC> {
    39   G1YoungRemSetSamplingThread* _sample_thread;
       
    40 
       
    41   G1ConcurrentRefineThread** _threads;
    38   G1ConcurrentRefineThread** _threads;
    42   uint _n_worker_threads;
    39   uint _n_worker_threads;
    43  /*
    40  /*
    44   * The value of the update buffer queue length falls into one of 3 zones:
    41   * The value of the update buffer queue length falls into one of 3 zones:
    45   * green, yellow, red. If the value is in [0, green) nothing is
    42   * green, yellow, red. If the value is in [0, green) nothing is
    84 
    81 
    85   void stop();
    82   void stop();
    86 
    83 
    87   void adjust(double update_rs_time, size_t update_rs_processed_buffers, double goal_ms);
    84   void adjust(double update_rs_time, size_t update_rs_processed_buffers, double goal_ms);
    88 
    85 
    89   // Iterate over all concurrent refinement threads
    86   // Iterate over all concurrent refinement threads applying the given closure.
    90   void threads_do(ThreadClosure *tc);
    87   void threads_do(ThreadClosure *tc);
    91 
       
    92   // Iterate over all worker refinement threads
       
    93   void worker_threads_do(ThreadClosure * tc);
       
    94 
       
    95   // The RS sampling thread has nothing to do with refinement, but is here for now.
       
    96   G1YoungRemSetSamplingThread * sampling_thread() const { return _sample_thread; }
       
    97 
    88 
    98   static uint thread_num();
    89   static uint thread_num();
    99 
    90 
   100   void print_worker_threads_on(outputStream* st) const;
    91   void print_threads_on(outputStream* st) const;
   101 
    92 
   102   size_t green_zone() const      { return _green_zone;  }
    93   size_t green_zone() const      { return _green_zone;  }
   103   size_t yellow_zone() const     { return _yellow_zone; }
    94   size_t yellow_zone() const     { return _yellow_zone; }
   104   size_t red_zone() const        { return _red_zone;    }
    95   size_t red_zone() const        { return _red_zone;    }
   105 };
    96 };