273 virtual size_t tlab_used(Thread* thr) const;
274 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
275 virtual HeapWord* allocate_new_tlab(size_t min_size,
276 size_t requested_size,
277 size_t* actual_size);
278
279 // The "requestor" generation is performing some garbage collection
280 // action for which it would be useful to have scratch space. The
281 // requestor promises to allocate no more than "max_alloc_words" in any
282 // older generation (via promotion say.) Any blocks of space that can
283 // be provided are returned as a list of ScratchBlocks, sorted by
284 // decreasing size.
285 ScratchBlock* gather_scratch(Generation* requestor, size_t max_alloc_words);
286 // Allow each generation to reset any scratch space that it has
287 // contributed as it needs.
288 void release_scratch();
289
290 // Ensure parsability: override
291 virtual void ensure_parsability(bool retire_tlabs);
292
293 // Time in ms since the longest time a collector ran in
294 // in any generation.
295 virtual jlong millis_since_last_gc();
296
297 // Total number of full collections completed.
298 unsigned int total_full_collections_completed() {
299 assert(_full_collections_completed <= _total_full_collections,
300 "Can't complete more collections than were started");
301 return _full_collections_completed;
302 }
303
304 // Update above counter, as appropriate, at the end of a stop-world GC cycle
305 unsigned int update_full_collections_completed();
306 // Update above counter, as appropriate, at the end of a concurrent GC cycle
307 unsigned int update_full_collections_completed(unsigned int count);
308
309 // Update "time of last gc" for all generations to "now".
310 void update_time_of_last_gc(jlong now) {
311 _young_gen->update_time_of_last_gc(now);
312 _old_gen->update_time_of_last_gc(now);
313 }
314
315 // Update the gc statistics for each generation.
316 void update_gc_stats(Generation* current_generation, bool full) {
317 _old_gen->update_gc_stats(current_generation, full);
318 }
319
320 bool no_gc_in_progress() { return !is_gc_active(); }
321
322 // Override.
323 void prepare_for_verify();
324
325 // Override.
326 void verify(VerifyOption option);
327
328 // Override.
329 virtual void print_on(outputStream* st) const;
330 virtual void gc_threads_do(ThreadClosure* tc) const;
331 virtual void print_tracing_info() const;
332
333 // Used to print information about locations in the hs_err file.
|
273 virtual size_t tlab_used(Thread* thr) const;
274 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
275 virtual HeapWord* allocate_new_tlab(size_t min_size,
276 size_t requested_size,
277 size_t* actual_size);
278
279 // The "requestor" generation is performing some garbage collection
280 // action for which it would be useful to have scratch space. The
281 // requestor promises to allocate no more than "max_alloc_words" in any
282 // older generation (via promotion say.) Any blocks of space that can
283 // be provided are returned as a list of ScratchBlocks, sorted by
284 // decreasing size.
285 ScratchBlock* gather_scratch(Generation* requestor, size_t max_alloc_words);
286 // Allow each generation to reset any scratch space that it has
287 // contributed as it needs.
288 void release_scratch();
289
290 // Ensure parsability: override
291 virtual void ensure_parsability(bool retire_tlabs);
292
293 // Total number of full collections completed.
294 unsigned int total_full_collections_completed() {
295 assert(_full_collections_completed <= _total_full_collections,
296 "Can't complete more collections than were started");
297 return _full_collections_completed;
298 }
299
300 // Update above counter, as appropriate, at the end of a stop-world GC cycle
301 unsigned int update_full_collections_completed();
302 // Update above counter, as appropriate, at the end of a concurrent GC cycle
303 unsigned int update_full_collections_completed(unsigned int count);
304
305 // Update the gc statistics for each generation.
306 void update_gc_stats(Generation* current_generation, bool full) {
307 _old_gen->update_gc_stats(current_generation, full);
308 }
309
310 bool no_gc_in_progress() { return !is_gc_active(); }
311
312 // Override.
313 void prepare_for_verify();
314
315 // Override.
316 void verify(VerifyOption option);
317
318 // Override.
319 virtual void print_on(outputStream* st) const;
320 virtual void gc_threads_do(ThreadClosure* tc) const;
321 virtual void print_tracing_info() const;
322
323 // Used to print information about locations in the hs_err file.
|