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 |