equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2001, 2011, 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. |
23 */ |
23 */ |
24 |
24 |
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP |
27 |
27 |
28 #include "gc_implementation/g1/heapRegion.hpp" |
28 #include "gc_implementation/g1/heapRegionSets.hpp" |
29 #include "utilities/taskqueue.hpp" |
29 #include "utilities/taskqueue.hpp" |
30 |
30 |
31 class G1CollectedHeap; |
31 class G1CollectedHeap; |
32 class CMTask; |
32 class CMTask; |
33 typedef GenericTaskQueue<oop> CMTaskQueue; |
33 typedef GenericTaskQueue<oop> CMTaskQueue; |
367 |
367 |
368 // same as the two above, but for the cleanup task |
368 // same as the two above, but for the cleanup task |
369 double _cleanup_sleep_factor; |
369 double _cleanup_sleep_factor; |
370 double _cleanup_task_overhead; |
370 double _cleanup_task_overhead; |
371 |
371 |
372 // Stuff related to age cohort processing. |
372 FreeRegionList _cleanup_list; |
373 struct ParCleanupThreadState { |
|
374 char _pre[64]; |
|
375 UncleanRegionList list; |
|
376 char _post[64]; |
|
377 }; |
|
378 ParCleanupThreadState** _par_cleanup_thread_state; |
|
379 |
373 |
380 // CMS marking support structures |
374 // CMS marking support structures |
381 CMBitMap _markBitMap1; |
375 CMBitMap _markBitMap1; |
382 CMBitMap _markBitMap2; |
376 CMBitMap _markBitMap2; |
383 CMBitMapRO* _prevMarkBitMap; // completed mark bitmap |
377 CMBitMapRO* _prevMarkBitMap; // completed mark bitmap |
481 // structures are initialised to a sensible and predictable state. |
475 // structures are initialised to a sensible and predictable state. |
482 void set_non_marking_state(); |
476 void set_non_marking_state(); |
483 |
477 |
484 // prints all gathered CM-related statistics |
478 // prints all gathered CM-related statistics |
485 void print_stats(); |
479 void print_stats(); |
|
480 |
|
481 bool cleanup_list_is_empty() { |
|
482 return _cleanup_list.is_empty(); |
|
483 } |
486 |
484 |
487 // accessor methods |
485 // accessor methods |
488 size_t parallel_marking_threads() { return _parallel_marking_threads; } |
486 size_t parallel_marking_threads() { return _parallel_marking_threads; } |
489 double sleep_factor() { return _sleep_factor; } |
487 double sleep_factor() { return _sleep_factor; } |
490 double marking_task_overhead() { return _marking_task_overhead;} |
488 double marking_task_overhead() { return _marking_task_overhead;} |