< prev index next >

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

Print this page

        

*** 685,697 **** void OtherRegionsTable::do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task) { _sparse_table.do_cleanup_work(hrrs_cleanup_task); } ! HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr) ! : _bosa(bosa), _m(Mutex::leaf, FormatBuffer<128>("HeapRegionRemSet lock #%u", hr->hrm_index()), true, Monitor::_safepoint_check_never), _code_roots(), _other_regions(hr, &_m), _iter_state(Unclaimed), _iter_claimed(0) { reset_for_par_iteration(); } --- 685,697 ---- void OtherRegionsTable::do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task) { _sparse_table.do_cleanup_work(hrrs_cleanup_task); } ! HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetTable* bot, HeapRegion* hr) ! : _bot(bot), _m(Mutex::leaf, FormatBuffer<128>("HeapRegionRemSet lock #%u", hr->hrm_index()), true, Monitor::_safepoint_check_never), _code_roots(), _other_regions(hr, &_m), _iter_state(Unclaimed), _iter_claimed(0) { reset_for_par_iteration(); }
*** 726,737 **** #ifndef PRODUCT void HeapRegionRemSet::print() { HeapRegionRemSetIterator iter(this); size_t card_index; while (iter.has_next(card_index)) { ! HeapWord* card_start = ! G1CollectedHeap::heap()->bot_shared()->address_for_index(card_index); tty->print_cr(" Card " PTR_FORMAT, p2i(card_start)); } if (iter.n_yielded() != occupied()) { tty->print_cr("Yielded disagrees with occupied:"); tty->print_cr(" " SIZE_FORMAT_W(6) " yielded (" SIZE_FORMAT_W(6) --- 726,736 ---- #ifndef PRODUCT void HeapRegionRemSet::print() { HeapRegionRemSetIterator iter(this); size_t card_index; while (iter.has_next(card_index)) { ! HeapWord* card_start = _bot->address_for_index(card_index); tty->print_cr(" Card " PTR_FORMAT, p2i(card_start)); } if (iter.n_yielded() != occupied()) { tty->print_cr("Yielded disagrees with occupied:"); tty->print_cr(" " SIZE_FORMAT_W(6) " yielded (" SIZE_FORMAT_W(6)
*** 823,833 **** HeapRegionRemSetIterator:: HeapRegionRemSetIterator(HeapRegionRemSet* hrrs) : _hrrs(hrrs), _g1h(G1CollectedHeap::heap()), _coarse_map(&hrrs->_other_regions._coarse_map), ! _bosa(hrrs->_bosa), _is(Sparse), // Set these values so that we increment to the first region. _coarse_cur_region_index(-1), _coarse_cur_region_cur_card(HeapRegion::CardsPerRegion-1), _cur_card_in_prt(HeapRegion::CardsPerRegion), --- 822,832 ---- HeapRegionRemSetIterator:: HeapRegionRemSetIterator(HeapRegionRemSet* hrrs) : _hrrs(hrrs), _g1h(G1CollectedHeap::heap()), _coarse_map(&hrrs->_other_regions._coarse_map), ! _bot(hrrs->_bot), _is(Sparse), // Set these values so that we increment to the first region. _coarse_cur_region_index(-1), _coarse_cur_region_cur_card(HeapRegion::CardsPerRegion-1), _cur_card_in_prt(HeapRegion::CardsPerRegion),
*** 850,860 **** (int) _coarse_map->get_next_one_offset(_coarse_cur_region_index + 1); if ((size_t)_coarse_cur_region_index < _coarse_map->size()) { _coarse_cur_region_cur_card = 0; HeapWord* r_bot = _g1h->region_at((uint) _coarse_cur_region_index)->bottom(); ! _cur_region_card_offset = _bosa->index_for(r_bot); } else { return false; } } // If we didn't return false above, then we can yield a card. --- 849,859 ---- (int) _coarse_map->get_next_one_offset(_coarse_cur_region_index + 1); if ((size_t)_coarse_cur_region_index < _coarse_map->size()) { _coarse_cur_region_cur_card = 0; HeapWord* r_bot = _g1h->region_at((uint) _coarse_cur_region_index)->bottom(); ! _cur_region_card_offset = _bot->index_for(r_bot); } else { return false; } } // If we didn't return false above, then we can yield a card.
*** 891,901 **** void HeapRegionRemSetIterator::switch_to_prt(PerRegionTable* prt) { assert(prt != NULL, "Cannot switch to NULL prt"); _fine_cur_prt = prt; HeapWord* r_bot = _fine_cur_prt->hr()->bottom(); ! _cur_region_card_offset = _bosa->index_for(r_bot); // The bitmap scan for the PRT always scans from _cur_region_cur_card + 1. // To avoid special-casing this start case, and not miss the first bitmap // entry, initialize _cur_region_cur_card with -1 instead of 0. _cur_card_in_prt = (size_t)-1; --- 890,900 ---- void HeapRegionRemSetIterator::switch_to_prt(PerRegionTable* prt) { assert(prt != NULL, "Cannot switch to NULL prt"); _fine_cur_prt = prt; HeapWord* r_bot = _fine_cur_prt->hr()->bottom(); ! _cur_region_card_offset = _bot->index_for(r_bot); // The bitmap scan for the PRT always scans from _cur_region_cur_card + 1. // To avoid special-casing this start case, and not miss the first bitmap // entry, initialize _cur_region_cur_card with -1 instead of 0. _cur_card_in_prt = (size_t)-1;
*** 999,1009 **** HeapRegionRemSetIterator iter(hrrs); size_t sum = 0; size_t card_index; while (iter.has_next(card_index)) { HeapWord* card_start = ! G1CollectedHeap::heap()->bot_shared()->address_for_index(card_index); tty->print_cr(" Card " PTR_FORMAT ".", p2i(card_start)); sum++; } guarantee(sum == 11 - 3 + 2048, "Failure"); guarantee(sum == hrrs->occupied(), "Failure"); --- 998,1008 ---- HeapRegionRemSetIterator iter(hrrs); size_t sum = 0; size_t card_index; while (iter.has_next(card_index)) { HeapWord* card_start = ! G1CollectedHeap::heap()->bot()->address_for_index(card_index); tty->print_cr(" Card " PTR_FORMAT ".", p2i(card_start)); sum++; } guarantee(sum == 11 - 3 + 2048, "Failure"); guarantee(sum == hrrs->occupied(), "Failure");
< prev index next >