RFR: Pre-evac JVMTI roots

Roman Kennke rkennke at redhat.com
Thu Nov 1 00:26:49 UTC 2018


Good! Go!

Thanks, Roman

> JVMTI's JvmtiTagHashmap is a hashtable, and its hash value is derived
> from key (an oop)'s address. Because GC can move oops, so the hashtable
> has to rehash itself every time the table is walked vs.
> JvmtiExport::weak_oops_do().
> 
> To maintain table's to-space invariant, so that the hash value derived
> from key oop should match later query key, which is always a to-space
> oop, we need to pre-evacuate the table.
> 
> Webrev:
> http://cr.openjdk.java.net/~zgu/shenandoah/pre_evac_jvmti_roots/webrev.00/index.html
> 
> 
> This patch, along with early "Avoid write barrier during full GC",
> clears vmTestbase/nsk/jdi test suite.
> 
> Test:
>   tier3_gc_shenandoah and vmTestbase/nsk/jdi (fastdebug and release)
> 
> Thanks,
> 
> -Zhengyu



More information about the shenandoah-dev mailing list