8155811: Remove HeapRegionRemSet::_coarse_dirty flag
Reviewed-by: mgerdin, jmasa
This commit is contained in:
parent
461078c649
commit
d4bfb42264
hotspot/src/share/vm/gc/g1
@ -265,8 +265,7 @@ OtherRegionsTable::OtherRegionsTable(HeapRegion* hr, Mutex* m) :
|
|||||||
_first_all_fine_prts(NULL), _last_all_fine_prts(NULL),
|
_first_all_fine_prts(NULL), _last_all_fine_prts(NULL),
|
||||||
_n_fine_entries(0), _n_coarse_entries(0),
|
_n_fine_entries(0), _n_coarse_entries(0),
|
||||||
_fine_eviction_start(0),
|
_fine_eviction_start(0),
|
||||||
_sparse_table(hr),
|
_sparse_table(hr)
|
||||||
_coarse_dirty(false)
|
|
||||||
{
|
{
|
||||||
typedef PerRegionTable* PerRegionTablePtr;
|
typedef PerRegionTable* PerRegionTablePtr;
|
||||||
|
|
||||||
@ -505,7 +504,6 @@ PerRegionTable* OtherRegionsTable::delete_region_table() {
|
|||||||
size_t max_hrm_index = (size_t) max->hr()->hrm_index();
|
size_t max_hrm_index = (size_t) max->hr()->hrm_index();
|
||||||
if (!_coarse_map.at(max_hrm_index)) {
|
if (!_coarse_map.at(max_hrm_index)) {
|
||||||
_coarse_map.at_put(max_hrm_index, true);
|
_coarse_map.at_put(max_hrm_index, true);
|
||||||
_coarse_dirty = true;
|
|
||||||
_n_coarse_entries++;
|
_n_coarse_entries++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -521,10 +519,9 @@ void OtherRegionsTable::scrub(G1CardLiveData* live_data) {
|
|||||||
log_develop_trace(gc, remset, scrub)("Scrubbing region %u:", _hr->hrm_index());
|
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);
|
log_develop_trace(gc, remset, scrub)(" Coarse map: before = " SIZE_FORMAT "...", _n_coarse_entries);
|
||||||
if (_coarse_dirty) {
|
if (_n_coarse_entries > 0) {
|
||||||
live_data->remove_nonlive_regions(&_coarse_map);
|
live_data->remove_nonlive_regions(&_coarse_map);
|
||||||
_n_coarse_entries = _coarse_map.count_one_bits();
|
_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);
|
log_develop_trace(gc, remset, scrub)(" after = " SIZE_FORMAT ".", _n_coarse_entries);
|
||||||
|
|
||||||
@ -651,9 +648,8 @@ void OtherRegionsTable::clear() {
|
|||||||
|
|
||||||
_first_all_fine_prts = _last_all_fine_prts = NULL;
|
_first_all_fine_prts = _last_all_fine_prts = NULL;
|
||||||
_sparse_table.clear();
|
_sparse_table.clear();
|
||||||
if (_coarse_dirty) {
|
if (_n_coarse_entries > 0) {
|
||||||
_coarse_map.clear();
|
_coarse_map.clear();
|
||||||
_coarse_dirty = false;
|
|
||||||
}
|
}
|
||||||
_n_fine_entries = 0;
|
_n_fine_entries = 0;
|
||||||
_n_coarse_entries = 0;
|
_n_coarse_entries = 0;
|
||||||
|
@ -79,7 +79,6 @@ class OtherRegionsTable VALUE_OBJ_CLASS_SPEC {
|
|||||||
HeapRegion* _hr;
|
HeapRegion* _hr;
|
||||||
|
|
||||||
// These are protected by "_m".
|
// These are protected by "_m".
|
||||||
bool _coarse_dirty;
|
|
||||||
BitMap _coarse_map;
|
BitMap _coarse_map;
|
||||||
size_t _n_coarse_entries;
|
size_t _n_coarse_entries;
|
||||||
static jint _n_coarsenings;
|
static jint _n_coarsenings;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user