RFR: Refactor heap verification

Aleksey Shipilev shade at redhat.com
Thu Jun 1 20:44:04 UTC 2017


On 06/01/2017 10:41 PM, Zhengyu Gu wrote:
> Is this right?
> 
>  239   if (ShenandoahVerify) {
>  240     ReservedSpace verify_bitmap(_bitmap_size, page_size);
>  241     os::commit_memory_or_exit(verify_bitmap.base(), verify_bitmap.size(),
> false,
>  242                               "couldn't allocate verification bitmap");
>  243     MemTracker::record_virtual_memory_type(verify_bitmap.base(), mtGC);
>  244     MemRegion verify_bitmap_region = MemRegion((HeapWord *)
> verify_bitmap.base(), verify_bitmap.size() / HeapWordSize);
>  245     _verification_bit_map.initialize(_heap_region, verify_bitmap_region);
>  246   }
>  247
>  248   _verifier = new ShenandoahVerifier(this, &_verification_bit_map);
>  249
> 
> You want to construct _verifier without initialized bitmap?

Verifier would barf when used without ShenandoahVerify enabled. And this saves
NULL-checking on every verifier()->foo() call. Seems like the lesser evil,
although we need to think if we just want to initialize verification bitmap
unconditionally, because sometimes Universe asks us to verify anyway.

-Aleksey



More information about the shenandoah-dev mailing list