RFR: Reset TAMS for uncommitted empty regions to avoid leftover old values
Roman Kennke
rkennke at redhat.com
Wed Jul 25 13:44:18 UTC 2018
Am 25.07.2018 um 14:56 schrieb Zhengyu Gu:
> 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)
>
Ah! Good one! Please push!
This may actually be the fix for another (seemingly related) assert in
TestHeapUncommit w/ Traversal GC.
Thanks,
Roman
More information about the shenandoah-dev
mailing list