RFR: Verify liveness data

Zhengyu Gu zgu at redhat.com
Mon Aug 7 13:49:43 UTC 2017


1) ShenandoahLivenessData* _ld; -> volatile ShenandoahLivenessData* _ld;

2) shenandoahVerifier.cpp
  251           Atomic::add(obj->size() + BrooksPointer::word_size(), 
_ld + obj_reg->region_number());

  ->  251           Atomic::add(obj->size() + 
BrooksPointer::word_size(), _ld[obj_reg->region_number()]);

Otherwise, look good.

-Zhengyu


On 08/07/2017 04:58 AM, Aleksey Shipilev wrote:

> It shall make me sleep better knowing that our liveness calculation during concurrent mark is
> verified. Breaking liveness calculation may have performance implications for heuristics (e.g. not
> treating garbage-first regions well), and functional bugs (e.g. reclaiming immediate garbage
> regions, while they are not really garbage).
>
> Fix:
>  http://cr.openjdk.java.net/~shade/shenandoah/verifier-liveness/webrev.01/
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>


More information about the shenandoah-dev mailing list