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

Zhengyu Gu zgu at redhat.com
Fri Aug 2 14:59:20 UTC 2019



On 8/2/19 6:42 AM, Aleksey Shipilev wrote:
> On 7/23/19 5:40 PM, Zhengyu Gu wrote:
>> Updated: http://cr.openjdk.java.net/~zgu/JDK-8227103/webrev.01/
> Getting back to this! The refactoring generally looks good. Some minor things:
> 
> *) I wonder if we actually need to store _nmethod_table_state in ShenandoahCodeRootsIterator? It
> looks as if that state is actually table-internal, and should be moved there? Actually, I don't see
> the need for ShenandoahNMethodTableState, we can just as ShenandoahNMethodTable to iterate itself?

Right. It was influenced by following up changes too much.

Updated: http://cr.openjdk.java.net/~zgu/JDK-8227103/webrev.02/


> 
> *) It looks like ShenandoahNMethodTable::log_(un)register_nmethod can be replaced with just
> one-liners like: log_debug(gc, nmethod)(...), and inlined into their only uses?
> 

IIRC, the one-line version constructs parameters before checking if 
logging is enabled, so have to pay the penalty even logging is disabled, 
and parameter constructions here are not trivial.

Reran hotspot_gc_shenandoah (fastdebug and release)

Thanks,

-Zhengyu


> 


More information about the shenandoah-dev mailing list