63 size_t _min_yellow_zone_size;
64
65 ConcurrentG1Refine(size_t green_zone,
66 size_t yellow_zone,
67 size_t red_zone,
68 size_t min_yellow_zone_size);
69
70 // Update green/yellow/red zone values based on how well goals are being met.
71 void update_zones(double update_rs_time,
72 size_t update_rs_processed_buffers,
73 double goal_ms);
74
75 // Update thread thresholds to account for updated zone values.
76 void update_thread_thresholds();
77
78 public:
79 ~ConcurrentG1Refine();
80
81 // Returns ConcurrentG1Refine instance if succeeded to create/initialize ConcurrentG1Refine and ConcurrentG1RefineThread.
82 // Otherwise, returns NULL with error code.
83 static ConcurrentG1Refine* create(CardTableEntryClosure* refine_closure, jint* ecode);
84
85 void stop();
86
87 void adjust(double update_rs_time, size_t update_rs_processed_buffers, double goal_ms);
88
89 // Iterate over all concurrent refinement threads
90 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
98 static uint thread_num();
99
100 void print_worker_threads_on(outputStream* st) const;
101
102 size_t green_zone() const { return _green_zone; }
103 size_t yellow_zone() const { return _yellow_zone; }
|
63 size_t _min_yellow_zone_size;
64
65 ConcurrentG1Refine(size_t green_zone,
66 size_t yellow_zone,
67 size_t red_zone,
68 size_t min_yellow_zone_size);
69
70 // Update green/yellow/red zone values based on how well goals are being met.
71 void update_zones(double update_rs_time,
72 size_t update_rs_processed_buffers,
73 double goal_ms);
74
75 // Update thread thresholds to account for updated zone values.
76 void update_thread_thresholds();
77
78 public:
79 ~ConcurrentG1Refine();
80
81 // Returns ConcurrentG1Refine instance if succeeded to create/initialize ConcurrentG1Refine and ConcurrentG1RefineThread.
82 // Otherwise, returns NULL with error code.
83 static ConcurrentG1Refine* create(jint* ecode);
84
85 void stop();
86
87 void adjust(double update_rs_time, size_t update_rs_processed_buffers, double goal_ms);
88
89 // Iterate over all concurrent refinement threads
90 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
98 static uint thread_num();
99
100 void print_worker_threads_on(outputStream* st) const;
101
102 size_t green_zone() const { return _green_zone; }
103 size_t yellow_zone() const { return _yellow_zone; }
|