RFR 8227103: Shenandoah: Refactor ShenandoahNMethod in preparation of concurrent nmethod iteration

Zhengyu Gu zgu at redhat.com
Tue Jul 2 16:51:47 UTC 2019


This refactor is one of subtasks for concurrent nmethod unloading [1].

It moves ShenandoahNMethod out of ShenandoahCodeRoots, in preparation 
for more complicated concurrent nmethod iteration.

Borrowing what ZGC does, only records oops embedded in relocation stream 
to reduce memory footprint. Also, attaches ShenandoahNMethod to 
nmethod's gc_data, so that it avoids additional searching during 
re-register nmethod.

Let's use shenandoah/jdk for concurrent nmethod unloading work, while we 
stabilize early concurrent root work in jdk/jdk.

Bug: https://bugs.openjdk.java.net/browse/JDK-8227103
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8227103/webrev.00/

Test:
   hotspot_gc_shenandoah (fastdebug and release)

Thanks,

-Zhengyu

[1] https://bugs.openjdk.java.net/browse/JDK-8227102


More information about the shenandoah-dev mailing list