RFR (S) 8222446: assert(C->env()->system_dictionary_modification_counter_changed()) failed: Must invalidate if TypeFuncs differ
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Thu Jun 20 17:28:31 UTC 2019
Summary: Remove SystemDictionary::modification_counter optimization
See bug for more details. To avoid the assert in the bug report, it's
necessary to also increase the modification counter for class unloading,
which needs special code for concurrent class unloading. The global
counter is used to verify that validate_dependencies() gets the same
answer based on the subklass hierarchy, but provides a quick exit in
production mode. Removing it may allow more nmethods to be created that
don't depend on the classes that may be loaded while the Method is being
compiled. Performance testing was done on this with no change in
performance. Also investigated the breakpoint setting code which
incremented the modification counter. Dependent compilations are
invalidated using evol_method dependencies, so updating the system
dictionary modification counter isn't unnecessary.
Tested with hs-tier1-8 testing, and CTW, and local jvmti/jdi/jdwp test
runs with -Xcomp.
open webrev at http://cr.openjdk.java.net/~coleenp/2019/8222446.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8222446
Thanks,
Coleen
More information about the hotspot-dev
mailing list