23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/g1BlockOffsetTable.inline.hpp"
27 #include "gc/g1/g1CollectedHeap.inline.hpp"
28 #include "gc/g1/g1ConcurrentRefine.hpp"
29 #include "gc/g1/heapRegionManager.inline.hpp"
30 #include "gc/g1/heapRegionRemSet.hpp"
31 #include "gc/shared/space.inline.hpp"
32 #include "memory/allocation.hpp"
33 #include "memory/padded.inline.hpp"
34 #include "oops/oop.inline.hpp"
35 #include "runtime/atomic.hpp"
36 #include "utilities/bitMap.inline.hpp"
37 #include "utilities/debug.hpp"
38 #include "utilities/formatBuffer.hpp"
39 #include "utilities/globalDefinitions.hpp"
40 #include "utilities/growableArray.hpp"
41
42 const char* HeapRegionRemSet::_state_strings[] = {"Untracked", "Updating", "Complete"};
43
44 class PerRegionTable: public CHeapObj<mtGC> {
45 friend class OtherRegionsTable;
46 friend class HeapRegionRemSetIterator;
47
48 HeapRegion* _hr;
49 CHeapBitMap _bm;
50 jint _occupied;
51
52 // next pointer for free/allocated 'all' list
53 PerRegionTable* _next;
54
55 // prev pointer for the allocated 'all' list
56 PerRegionTable* _prev;
57
58 // next pointer in collision list
59 PerRegionTable * _collision_list_next;
60
61 // Global free list of PRTs
62 static PerRegionTable* volatile _free_list;
|
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/g1BlockOffsetTable.inline.hpp"
27 #include "gc/g1/g1CollectedHeap.inline.hpp"
28 #include "gc/g1/g1ConcurrentRefine.hpp"
29 #include "gc/g1/heapRegionManager.inline.hpp"
30 #include "gc/g1/heapRegionRemSet.hpp"
31 #include "gc/shared/space.inline.hpp"
32 #include "memory/allocation.hpp"
33 #include "memory/padded.inline.hpp"
34 #include "oops/oop.inline.hpp"
35 #include "runtime/atomic.hpp"
36 #include "utilities/bitMap.inline.hpp"
37 #include "utilities/debug.hpp"
38 #include "utilities/formatBuffer.hpp"
39 #include "utilities/globalDefinitions.hpp"
40 #include "utilities/growableArray.hpp"
41
42 const char* HeapRegionRemSet::_state_strings[] = {"Untracked", "Updating", "Complete"};
43 const char* HeapRegionRemSet::_short_state_strings[] = {"UNTRA", "UPDAT", "CMPLT"};
44
45 class PerRegionTable: public CHeapObj<mtGC> {
46 friend class OtherRegionsTable;
47 friend class HeapRegionRemSetIterator;
48
49 HeapRegion* _hr;
50 CHeapBitMap _bm;
51 jint _occupied;
52
53 // next pointer for free/allocated 'all' list
54 PerRegionTable* _next;
55
56 // prev pointer for the allocated 'all' list
57 PerRegionTable* _prev;
58
59 // next pointer in collision list
60 PerRegionTable * _collision_list_next;
61
62 // Global free list of PRTs
63 static PerRegionTable* volatile _free_list;
|