--- old/src/share/vm/gc/g1/g1OopClosures.inline.hpp 2017-07-03 12:19:00.455833137 +0200 +++ new/src/share/vm/gc/g1/g1OopClosures.inline.hpp 2017-07-03 12:19:00.324829101 +0200 @@ -78,8 +78,10 @@ if (state.is_in_cset()) { prefetch_and_push(p, obj); } else { + if (HeapRegion::is_in_same_region(p, obj)) { + return; + } handle_non_cset_obj_common(state, p, obj); - _par_scan_state->update_rs(_from, p, obj); } } @@ -171,9 +173,7 @@ if (_from == to) { return; } - handle_non_cset_obj_common(state, p, obj); - to->rem_set()->add_reference(p, _worker_i); } } @@ -190,6 +190,9 @@ if (state.is_in_cset()) { prefetch_and_push(p, obj); } else { + if (HeapRegion::is_in_same_region(p, obj)) { + return; + } handle_non_cset_obj_common(state, p, obj); } }