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