[15] RFR 8239926: Shenandoah: Shenandoah needs to mark nmethod's metadata
Zhengyu Gu
zgu at redhat.com
Tue Feb 25 17:13:03 UTC 2020
Shenandoah encounters a few test failures with tools/javac. Verifier
catches unmarked oops in nmethod's metadata during root evacuation in
final mark phase.
The problem is that, Shenandoah marks on stack nmethods in init mark
pause, but it does not mark nmethod's metadata during concurrent mark
phase, when new nmethod is about to be executed.
The solution:
1) Use nmethod_entry_barrier to keep nmethod's metadata alive when the
nmethod is about to be executed, when nmethod entry barrier is supported.
2) Remark on stack nmethod's metadata at final mark pause.
Bug: https://bugs.openjdk.java.net/browse/JDK-8239926
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8239926/webrev.00/
Test:
hotspot_gc_shenandoah (fastdebug and release)
tools/javac with ShenandoahCodeRootsStyle = 1 and 2 (fastdebug and
release)
Thanks,
-Zhengyu
More information about the shenandoah-dev
mailing list