RFR: Reset TAMS for uncommitted empty regions to avoid leftover old values

Zhengyu Gu zgu at redhat.com
Wed Jul 25 12:56:06 UTC 2018


TestSystemGCWithShenandoah failed with following assertion:

#  Internal Error 
(/home/jenkins/workspace/zgu/zgu-shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:529), 
pid=74460, tid=74466
#  assert(next_marking_context()->is_bitmap_clear()) failed: need clean 
mark bitmap

It turns out that, when an uncommitted empty region in freeset gets 
recommitted, it may have old TAMS value that causes concurrent marking 
to mark the region, instead of treating it as all alive.


Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/traversal_tams/webrev.00/

Test:

   tier3_gc_shenandoah with new test (fastdebug and release)

Thanks,

-Zhengyu


More information about the shenandoah-dev mailing list