RFR Shenandoah: Don't recycle trash regions before concurrent root processing
Roman Kennke
rkennke at redhat.com
Tue Nov 26 11:36:49 UTC 2019
Looks good, thanks!
Roman
> Concurrent root processing requires Collection Set kept intact, because
> it is needed to determine if an oop is alive or dead.
>
> Roman pointed out that our trash recycle-assist could recycle trash
> regions prematurely. That results some of dead oops suddenly become
> alive, as recycled regions becomes new regions and those dead oops are
> above TAMS. This problem is exhibited by is_loader_alive() assertion
> failure in CriticalNativeStress tests.
>
> The solution is to avoid recycling trash region before concurrent root
> processing is completed.
>
> Webrev:
> http://cr.openjdk.java.net/~zgu/early_recycle_trash/webrev.00/index.html
>
> Test:
> tier3_gc_shenandoah with 20 iterations, usually fails within 10
> iterations without the fix.
>
> Thanks,
>
> -Zhengyu
>
More information about the shenandoah-dev
mailing list