RFR: 8218969: Free JVMCI native structures in nmethod::flush
Erik Österlund
erik.osterlund at oracle.com
Thu Feb 14 11:08:58 UTC 2019
Hi,
An nmethod goes from being is_alive() to being !is_alive() and
eventually being freed in nmethod::flush. Native structures for nmethods
are freed in nmethod::flush when we free the nmethod. Except for a few
things, including JVMCI handles, that are freed already when becoming
!is_alive (and some logic to deal with this potentially happening twice
for a given nmethod), and finally asserting during flush that it was
already cleared.
This enhancement proposes to treat these JVMCI handles like we treat any
other native structure and simply free it in nmethod::flush, when we
free the nmethod, so that the nmethod and handles have a 1:1 mapping for
their life cycles.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8218969
Webrev:
http://cr.openjdk.java.net/~eosterlund/8218969/webrev.00/
Thanks,
/Erik
More information about the hotspot-compiler-dev
mailing list