20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
26 #define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
27
28 #include "gc/g1/collectionSetChooser.hpp"
29 #include "utilities/debug.hpp"
30 #include "utilities/globalDefinitions.hpp"
31
32 class G1CollectedHeap;
33 class G1CollectorState;
34 class G1GCPhaseTimes;
35 class G1Policy;
36 class G1SurvivorRegions;
37 class HeapRegion;
38
39 class G1CollectionSet {
40 G1CollectedHeap* _g1;
41 G1Policy* _policy;
42
43 CollectionSetChooser* _cset_chooser;
44
45 uint _eden_region_length;
46 uint _survivor_region_length;
47 uint _old_region_length;
48
49 // The actual collection set as a set of region indices.
50 // All entries in _collection_set_regions below _collection_set_cur_length are
51 // assumed to be valid entries.
52 // We assume that at any time there is at most only one writer and (one or more)
53 // concurrent readers. This means we are good with using storestore and loadload
54 // barriers on the writer and reader respectively only.
55 uint* _collection_set_regions;
56 volatile size_t _collection_set_cur_length;
57 size_t _collection_set_max_length;
58
59 // The number of bytes in the collection set before the pause. Set from
60 // the incrementally built collection set at the start of an evacuation
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
26 #define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
27
28 #include "gc/g1/collectionSetChooser.hpp"
29 #include "utilities/debug.hpp"
30 #include "utilities/globalDefinitions.hpp"
31
32 class G1CollectedHeap;
33 class G1CollectorState;
34 class G1GCPhaseTimes;
35 class G1Policy;
36 class G1SurvivorRegions;
37 class HeapRegion;
38
39 class G1CollectionSet {
40 G1CollectedHeap* _g1h;
41 G1Policy* _policy;
42
43 CollectionSetChooser* _cset_chooser;
44
45 uint _eden_region_length;
46 uint _survivor_region_length;
47 uint _old_region_length;
48
49 // The actual collection set as a set of region indices.
50 // All entries in _collection_set_regions below _collection_set_cur_length are
51 // assumed to be valid entries.
52 // We assume that at any time there is at most only one writer and (one or more)
53 // concurrent readers. This means we are good with using storestore and loadload
54 // barriers on the writer and reader respectively only.
55 uint* _collection_set_regions;
56 volatile size_t _collection_set_cur_length;
57 size_t _collection_set_max_length;
58
59 // The number of bytes in the collection set before the pause. Set from
60 // the incrementally built collection set at the start of an evacuation
|