src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp

changeset 5165
6702da6b6082
parent 5125
2958af1d8c5a
child 5548
5888334c9c24
equal deleted inserted replaced
5164:5ed122fbd0ef 5165:6702da6b6082
240 240
241 static size_t fl_mem_size() { 241 static size_t fl_mem_size() {
242 PerRegionTable* cur = _free_list; 242 PerRegionTable* cur = _free_list;
243 size_t res = 0; 243 size_t res = 0;
244 while (cur != NULL) { 244 while (cur != NULL) {
245 res += sizeof(PerRegionTable); 245 res += cur->mem_size();
246 cur = cur->next(); 246 cur = cur->next();
247 } 247 }
248 return res; 248 return res;
249 } 249 }
250
251 static void test_fl_mem_size();
250 }; 252 };
251 253
252 PerRegionTable* PerRegionTable::_free_list = NULL; 254 PerRegionTable* PerRegionTable::_free_list = NULL;
253 255
254 size_t OtherRegionsTable::_max_fine_entries = 0; 256 size_t OtherRegionsTable::_max_fine_entries = 0;
1147 HeapRegionRemSet::finish_cleanup_task(HRRSCleanupTask* hrrs_cleanup_task) { 1149 HeapRegionRemSet::finish_cleanup_task(HRRSCleanupTask* hrrs_cleanup_task) {
1148 SparsePRT::finish_cleanup_task(hrrs_cleanup_task); 1150 SparsePRT::finish_cleanup_task(hrrs_cleanup_task);
1149 } 1151 }
1150 1152
1151 #ifndef PRODUCT 1153 #ifndef PRODUCT
1154 void PerRegionTable::test_fl_mem_size() {
1155 PerRegionTable* dummy = alloc(NULL);
1156 free(dummy);
1157 guarantee(dummy->mem_size() == fl_mem_size(), "fl_mem_size() does not return the correct element size");
1158 // try to reset the state
1159 _free_list = NULL;
1160 delete dummy;
1161 }
1162
1163 void HeapRegionRemSet::test_prt() {
1164 PerRegionTable::test_fl_mem_size();
1165 }
1166
1152 void HeapRegionRemSet::test() { 1167 void HeapRegionRemSet::test() {
1153 os::sleep(Thread::current(), (jlong)5000, false); 1168 os::sleep(Thread::current(), (jlong)5000, false);
1154 G1CollectedHeap* g1h = G1CollectedHeap::heap(); 1169 G1CollectedHeap* g1h = G1CollectedHeap::heap();
1155 1170
1156 // Run with "-XX:G1LogRSetRegionEntries=2", so that 1 and 5 end up in same 1171 // Run with "-XX:G1LogRSetRegionEntries=2", so that 1 and 5 end up in same

mercurial