src/share/vm/gc_implementation/g1/g1RemSet.hpp

changeset 7655
8e9ede9dd2cd
parent 7218
6948da6d7c13
child 7659
38d6febe66af
equal deleted inserted replaced
7654:36c7518fd486 7655:8e9ede9dd2cd
31 // collection set. 31 // collection set.
32 32
33 class G1CollectedHeap; 33 class G1CollectedHeap;
34 class CardTableModRefBarrierSet; 34 class CardTableModRefBarrierSet;
35 class ConcurrentG1Refine; 35 class ConcurrentG1Refine;
36 class G1ParPushHeapRSClosure;
36 37
37 // A G1RemSet in which each heap region has a rem set that records the 38 // A G1RemSet in which each heap region has a rem set that records the
38 // external heap references into it. Uses a mod ref bs to track updates, 39 // external heap references into it. Uses a mod ref bs to track updates,
39 // so that they can be used to update the individual region remsets. 40 // so that they can be used to update the individual region remsets.
40 41
66 size_t* _cards_scanned; 67 size_t* _cards_scanned;
67 size_t _total_cards_scanned; 68 size_t _total_cards_scanned;
68 69
69 // Used for caching the closure that is responsible for scanning 70 // Used for caching the closure that is responsible for scanning
70 // references into the collection set. 71 // references into the collection set.
71 OopsInHeapRegionClosure** _cset_rs_update_cl; 72 G1ParPushHeapRSClosure** _cset_rs_update_cl;
72 73
73 // Print the given summary info 74 // Print the given summary info
74 virtual void print_summary_info(G1RemSetSummary * summary, const char * header = NULL); 75 virtual void print_summary_info(G1RemSetSummary * summary, const char * header = NULL);
75 public: 76 public:
76 // This is called to reset dual hash tables after the gc pause 77 // This is called to reset dual hash tables after the gc pause
93 // The "worker_i" param is for the parallel case where the id 94 // The "worker_i" param is for the parallel case where the id
94 // of the worker thread calling this function can be helpful in 95 // of the worker thread calling this function can be helpful in
95 // partitioning the work to be done. It should be the same as 96 // partitioning the work to be done. It should be the same as
96 // the "i" passed to the calling thread's work(i) function. 97 // the "i" passed to the calling thread's work(i) function.
97 // In the sequential case this param will be ignored. 98 // In the sequential case this param will be ignored.
98 void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, 99 void oops_into_collection_set_do(G1ParPushHeapRSClosure* blk,
99 CodeBlobClosure* code_root_cl, 100 CodeBlobClosure* code_root_cl,
100 uint worker_i); 101 uint worker_i);
101 102
102 // Prepare for and cleanup after an oops_into_collection_set_do 103 // Prepare for and cleanup after an oops_into_collection_set_do
103 // call. Must call each of these once before and after (in sequential 104 // call. Must call each of these once before and after (in sequential
105 // opportunity to sequential setup and teardown of structures needed by a 106 // opportunity to sequential setup and teardown of structures needed by a
106 // parallel iteration over the CS's RS.) 107 // parallel iteration over the CS's RS.)
107 void prepare_for_oops_into_collection_set_do(); 108 void prepare_for_oops_into_collection_set_do();
108 void cleanup_after_oops_into_collection_set_do(); 109 void cleanup_after_oops_into_collection_set_do();
109 110
110 void scanRS(OopsInHeapRegionClosure* oc, 111 void scanRS(G1ParPushHeapRSClosure* oc,
111 CodeBlobClosure* code_root_cl, 112 CodeBlobClosure* code_root_cl,
112 uint worker_i); 113 uint worker_i);
113 114
114 void updateRS(DirtyCardQueue* into_cset_dcq, uint worker_i); 115 void updateRS(DirtyCardQueue* into_cset_dcq, uint worker_i);
115 116

mercurial