79 void cleanupHRRS(); |
79 void cleanupHRRS(); |
80 |
80 |
81 G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs); |
81 G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs); |
82 ~G1RemSet(); |
82 ~G1RemSet(); |
83 |
83 |
84 // Invoke "blk->do_oop" on all pointers into the CS in objects in regions |
84 // Invoke "blk->do_oop" on all pointers into the collection set |
85 // outside the CS (having invoked "blk->set_region" to set the "from" |
85 // from objects in regions outside the collection set (having |
86 // region correctly beforehand.) The "worker_i" param is for the |
86 // invoked "blk->set_region" to set the "from" region correctly |
87 // parallel case where the number of the worker thread calling this |
87 // beforehand.) |
88 // function can be helpful in partitioning the work to be done. It |
88 // |
89 // should be the same as the "i" passed to the calling thread's |
89 // Invoke code_root_cl->do_code_blob on the unmarked nmethods |
90 // work(i) function. In the sequential case this param will be ingored. |
90 // on the strong code roots list for each region in the |
91 void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, int worker_i); |
91 // collection set. |
|
92 // |
|
93 // 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 // 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 // In the sequential case this param will be ignored. |
|
98 void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, |
|
99 CodeBlobToOopClosure* code_root_cl, |
|
100 int worker_i); |
92 |
101 |
93 // Prepare for and cleanup after an oops_into_collection_set_do |
102 // Prepare for and cleanup after an oops_into_collection_set_do |
94 // call. Must call each of these once before and after (in sequential |
103 // call. Must call each of these once before and after (in sequential |
95 // code) any threads call oops_into_collection_set_do. (This offers an |
104 // code) any threads call oops_into_collection_set_do. (This offers an |
96 // opportunity to sequential setup and teardown of structures needed by a |
105 // opportunity to sequential setup and teardown of structures needed by a |
97 // parallel iteration over the CS's RS.) |
106 // parallel iteration over the CS's RS.) |
98 void prepare_for_oops_into_collection_set_do(); |
107 void prepare_for_oops_into_collection_set_do(); |
99 void cleanup_after_oops_into_collection_set_do(); |
108 void cleanup_after_oops_into_collection_set_do(); |
100 |
109 |
101 void scanRS(OopsInHeapRegionClosure* oc, int worker_i); |
110 void scanRS(OopsInHeapRegionClosure* oc, |
|
111 CodeBlobToOopClosure* code_root_cl, |
|
112 int worker_i); |
|
113 |
102 void updateRS(DirtyCardQueue* into_cset_dcq, int worker_i); |
114 void updateRS(DirtyCardQueue* into_cset_dcq, int worker_i); |
103 |
115 |
104 CardTableModRefBS* ct_bs() { return _ct_bs; } |
116 CardTableModRefBS* ct_bs() { return _ct_bs; } |
105 size_t cardsScanned() { return _total_cards_scanned; } |
117 size_t cardsScanned() { return _total_cards_scanned; } |
106 |
118 |