< prev index next >

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

Print this page
rev 11047 : [mq]: 8155233-jon-review

*** 263,274 **** false /* in-resource-area */), _fine_grain_regions(NULL), _first_all_fine_prts(NULL), _last_all_fine_prts(NULL), _n_fine_entries(0), _n_coarse_entries(0), _fine_eviction_start(0), ! _sparse_table(hr), ! _coarse_dirty(false) { typedef PerRegionTable* PerRegionTablePtr; if (_max_fine_entries == 0) { assert(_mod_max_fine_entries_mask == 0, "Both or none."); --- 263,273 ---- false /* in-resource-area */), _fine_grain_regions(NULL), _first_all_fine_prts(NULL), _last_all_fine_prts(NULL), _n_fine_entries(0), _n_coarse_entries(0), _fine_eviction_start(0), ! _sparse_table(hr) { typedef PerRegionTable* PerRegionTablePtr; if (_max_fine_entries == 0) { assert(_mod_max_fine_entries_mask == 0, "Both or none.");
*** 503,513 **** // Set the corresponding coarse bit. size_t max_hrm_index = (size_t) max->hr()->hrm_index(); if (!_coarse_map.at(max_hrm_index)) { _coarse_map.at_put(max_hrm_index, true); - _coarse_dirty = true; _n_coarse_entries++; } // Unsplice. *max_prev = max->collision_list_next(); --- 502,511 ----
*** 519,532 **** void OtherRegionsTable::scrub(G1CardLiveData* live_data) { // First eliminated garbage regions from the coarse map. log_develop_trace(gc, remset, scrub)("Scrubbing region %u:", _hr->hrm_index()); log_develop_trace(gc, remset, scrub)(" Coarse map: before = " SIZE_FORMAT "...", _n_coarse_entries); ! if (_coarse_dirty) { live_data->remove_nonlive_regions(&_coarse_map); _n_coarse_entries = _coarse_map.count_one_bits(); - _coarse_dirty = _n_coarse_entries != 0; } log_develop_trace(gc, remset, scrub)(" after = " SIZE_FORMAT ".", _n_coarse_entries); // Now do the fine-grained maps. for (size_t i = 0; i < _max_fine_entries; i++) { --- 517,529 ---- void OtherRegionsTable::scrub(G1CardLiveData* live_data) { // First eliminated garbage regions from the coarse map. log_develop_trace(gc, remset, scrub)("Scrubbing region %u:", _hr->hrm_index()); log_develop_trace(gc, remset, scrub)(" Coarse map: before = " SIZE_FORMAT "...", _n_coarse_entries); ! if (_n_coarse_entries > 0) { live_data->remove_nonlive_regions(&_coarse_map); _n_coarse_entries = _coarse_map.count_one_bits(); } log_develop_trace(gc, remset, scrub)(" after = " SIZE_FORMAT ".", _n_coarse_entries); // Now do the fine-grained maps. for (size_t i = 0; i < _max_fine_entries; i++) {
*** 649,661 **** guarantee(_first_all_fine_prts == NULL && _last_all_fine_prts == NULL, "just checking"); } _first_all_fine_prts = _last_all_fine_prts = NULL; _sparse_table.clear(); ! if (_coarse_dirty) { _coarse_map.clear(); - _coarse_dirty = false; } _n_fine_entries = 0; _n_coarse_entries = 0; clear_fcc(); --- 646,657 ---- guarantee(_first_all_fine_prts == NULL && _last_all_fine_prts == NULL, "just checking"); } _first_all_fine_prts = _last_all_fine_prts = NULL; _sparse_table.clear(); ! if (_n_coarse_entries > 0) { _coarse_map.clear(); } _n_fine_entries = 0; _n_coarse_entries = 0; clear_fcc();
< prev index next >