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

Print this page
rev 6805 : imported patch commit-uncommit-within-heap
rev 6806 : imported patch mikael-suggestions
rev 6807 : imported patch bengt-suggestions

*** 371,391 **** _max_regions = max_num_regions; _cache = Padded2DArray<int, mtGC>::create_unfreeable(n_par_rs, _max_regions, &_static_mem_size); ! for (uint i = 0; i < n_par_rs; i++) { ! for (uint j = 0; j < _max_regions; j++) { ! set(i, j, InvalidCard); ! } ! } } ! void FromCardCache::shrink(uint new_num_regions) { for (uint i = 0; i < HeapRegionRemSet::num_par_rem_sets(); i++) { ! assert(new_num_regions <= _max_regions, "Must be within max."); ! for (uint j = new_num_regions; j < _max_regions; j++) { set(i, j, InvalidCard); } } } --- 371,391 ---- _max_regions = max_num_regions; _cache = Padded2DArray<int, mtGC>::create_unfreeable(n_par_rs, _max_regions, &_static_mem_size); ! invalidate(0, _max_regions); } ! void FromCardCache::invalidate(uint start_idx, size_t new_num_regions) { ! guarantee((size_t)start_idx + new_num_regions <= max_uintx, ! err_msg("Trying to invalidate beyond maximum region, from %u size "SIZE_FORMAT, ! start_idx, new_num_regions)); for (uint i = 0; i < HeapRegionRemSet::num_par_rem_sets(); i++) { ! uint end_idx = (start_idx + (uint)new_num_regions); ! assert(end_idx <= _max_regions, "Must be within max."); ! for (uint j = start_idx; j < end_idx; j++) { set(i, j, InvalidCard); } } }
*** 405,420 **** for (uint i = 0; i < num_par_remsets; i++) { set(i, region_idx, InvalidCard); } } ! void OtherRegionsTable::init_from_card_cache(uint max_regions) { FromCardCache::initialize(HeapRegionRemSet::num_par_rem_sets(), max_regions); } ! void OtherRegionsTable::shrink_from_card_cache(uint new_num_regions) { ! FromCardCache::shrink(new_num_regions); } void OtherRegionsTable::print_from_card_cache() { FromCardCache::print(); } --- 405,420 ---- for (uint i = 0; i < num_par_remsets; i++) { set(i, region_idx, InvalidCard); } } ! void OtherRegionsTable::initialize(uint max_regions) { FromCardCache::initialize(HeapRegionRemSet::num_par_rem_sets(), max_regions); } ! void OtherRegionsTable::invalidate(uint start_idx, size_t num_regions) { ! FromCardCache::invalidate(start_idx, num_regions); } void OtherRegionsTable::print_from_card_cache() { FromCardCache::print(); }
*** 839,849 **** HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr) : _bosa(bosa), _m(Mutex::leaf, FormatBuffer<128>("HeapRegionRemSet lock #%u", hr->hrs_index()), true), ! _code_roots(), _other_regions(hr, &_m) { reset_for_par_iteration(); } void HeapRegionRemSet::setup_remset_size() { // Setup sparse and fine-grain tables sizes. --- 839,849 ---- HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr) : _bosa(bosa), _m(Mutex::leaf, FormatBuffer<128>("HeapRegionRemSet lock #%u", hr->hrs_index()), true), ! _code_roots(), _other_regions(hr, &_m), _iter_state(Unclaimed), _iter_claimed(0) { reset_for_par_iteration(); } void HeapRegionRemSet::setup_remset_size() { // Setup sparse and fine-grain tables sizes.