RFR: Pre-evac JVMTI roots
Zhengyu Gu
zgu at redhat.com
Thu Nov 1 00:15:32 UTC 2018
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