comparison src/share/vm/gc_implementation/g1/g1RemSet.hpp @ 20494:7baf47cb97cb

8048268: G1 Code Root Migration performs poorly Summary: Replace G1CodeRootSet with a Hashtable based implementation, merge Code Root Migration phase into Code Root Scanning Reviewed-by: jmasa, brutisso, tschatzl
author mgerdin
date Fri, 29 Aug 2014 13:12:21 +0200
parents 02e61cf08ab3
children 6948da6d7c13
comparison
equal deleted inserted replaced
20493:152cf4afc11f 20494:7baf47cb97cb
94 // of the worker thread calling this function can be helpful in 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 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. 96 // the "i" passed to the calling thread's work(i) function.
97 // In the sequential case this param will be ignored. 97 // In the sequential case this param will be ignored.
98 void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, 98 void oops_into_collection_set_do(OopsInHeapRegionClosure* blk,
99 CodeBlobToOopClosure* code_root_cl, 99 CodeBlobClosure* code_root_cl,
100 uint worker_i); 100 uint worker_i);
101 101
102 // Prepare for and cleanup after an oops_into_collection_set_do 102 // Prepare for and cleanup after an oops_into_collection_set_do
103 // 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
104 // 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
106 // parallel iteration over the CS's RS.) 106 // parallel iteration over the CS's RS.)
107 void prepare_for_oops_into_collection_set_do(); 107 void prepare_for_oops_into_collection_set_do();
108 void cleanup_after_oops_into_collection_set_do(); 108 void cleanup_after_oops_into_collection_set_do();
109 109
110 void scanRS(OopsInHeapRegionClosure* oc, 110 void scanRS(OopsInHeapRegionClosure* oc,
111 CodeBlobToOopClosure* code_root_cl, 111 CodeBlobClosure* code_root_cl,
112 uint worker_i); 112 uint worker_i);
113 113
114 void updateRS(DirtyCardQueue* into_cset_dcq, uint worker_i); 114 void updateRS(DirtyCardQueue* into_cset_dcq, uint worker_i);
115 115
116 CardTableModRefBS* ct_bs() { return _ct_bs; } 116 CardTableModRefBS* ct_bs() { return _ct_bs; }