< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp

Print this page

        

*** 137,147 **** switch (_options._verify_liveness) { case ShenandoahVerifier::_verify_liveness_disable: // skip break; case ShenandoahVerifier::_verify_liveness_complete: ! Atomic::add((uint) obj->size(), &_ld[obj_reg->region_number()]); // fallthrough for fast failure for un-live regions: case ShenandoahVerifier::_verify_liveness_conservative: check(ShenandoahAsserts::_safe_oop, obj, obj_reg->has_live(), "Object must belong to region with live data"); break; --- 137,147 ---- switch (_options._verify_liveness) { case ShenandoahVerifier::_verify_liveness_disable: // skip break; case ShenandoahVerifier::_verify_liveness_complete: ! Atomic::add(&_ld[obj_reg->region_number()], (uint) obj->size()); // fallthrough for fast failure for un-live regions: case ShenandoahVerifier::_verify_liveness_conservative: check(ShenandoahAsserts::_safe_oop, obj, obj_reg->has_live(), "Object must belong to region with live data"); break;
*** 477,487 **** ShenandoahVerifierTask task = stack.pop(); cl.verify_oops_from(task.obj()); } } ! Atomic::add(processed, &_processed); } }; class ShenandoahVerifierMarkedRegionTask : public AbstractGangTask { private: --- 477,487 ---- ShenandoahVerifierTask task = stack.pop(); cl.verify_oops_from(task.obj()); } } ! Atomic::add(&_processed, processed); } }; class ShenandoahVerifierMarkedRegionTask : public AbstractGangTask { private:
*** 516,526 **** ShenandoahVerifyOopClosure cl(&stack, _bitmap, _ld, ShenandoahMessageBuffer("%s, Marked", _label), _options); while (true) { ! size_t v = Atomic::add(1u, &_claimed) - 1; if (v < _heap->num_regions()) { ShenandoahHeapRegion* r = _heap->get_region(v); if (!r->is_humongous() && !r->is_trash()) { work_regular(r, stack, cl); } else if (r->is_humongous_start()) { --- 516,526 ---- ShenandoahVerifyOopClosure cl(&stack, _bitmap, _ld, ShenandoahMessageBuffer("%s, Marked", _label), _options); while (true) { ! size_t v = Atomic::add(&_claimed, 1u) - 1; if (v < _heap->num_regions()) { ShenandoahHeapRegion* r = _heap->get_region(v); if (!r->is_humongous() && !r->is_trash()) { work_regular(r, stack, cl); } else if (r->is_humongous_start()) {
*** 536,546 **** size_t processed = 0; HeapWord* obj = r->bottom(); if (_heap->complete_marking_context()->is_marked((oop)obj)) { verify_and_follow(obj, stack, cl, &processed); } ! Atomic::add(processed, &_processed); } virtual void work_regular(ShenandoahHeapRegion *r, ShenandoahVerifierStack &stack, ShenandoahVerifyOopClosure &cl) { size_t processed = 0; MarkBitMap* mark_bit_map = _heap->complete_marking_context()->mark_bit_map(); --- 536,546 ---- size_t processed = 0; HeapWord* obj = r->bottom(); if (_heap->complete_marking_context()->is_marked((oop)obj)) { verify_and_follow(obj, stack, cl, &processed); } ! Atomic::add(&_processed, processed); } virtual void work_regular(ShenandoahHeapRegion *r, ShenandoahVerifierStack &stack, ShenandoahVerifyOopClosure &cl) { size_t processed = 0; MarkBitMap* mark_bit_map = _heap->complete_marking_context()->mark_bit_map();
*** 569,579 **** verify_and_follow(addr, stack, cl, &processed); addr += oop(addr)->size(); } } ! Atomic::add(processed, &_processed); } void verify_and_follow(HeapWord *addr, ShenandoahVerifierStack &stack, ShenandoahVerifyOopClosure &cl, size_t *processed) { if (!_bitmap->par_mark(addr)) return; --- 569,579 ---- verify_and_follow(addr, stack, cl, &processed); addr += oop(addr)->size(); } } ! Atomic::add(&_processed, processed); } void verify_and_follow(HeapWord *addr, ShenandoahVerifierStack &stack, ShenandoahVerifyOopClosure &cl, size_t *processed) { if (!_bitmap->par_mark(addr)) return;
< prev index next >