On Mon, 13 May 2024 14:42:26 GMT, Evgeny Astigeevich <eastigeev...@openjdk.org> wrote:
>> Backout of [JDK-8309271](https://bugs.openjdk.org/browse/JDK-8309271) which >> has known bugs, possible bugs and performance issues. REDO work is tracked >> by [JDK-8331749](https://bugs.openjdk.org/browse/JDK-8331749). >> >> Found bugs: >> - When refreshing `CompilerDirectivesAddDCmd::execute` will call >> `DirectivesStack::hasMatchingDirectives(mh, true)` which only considers the >> compiler directive which is on the top of the directives stack. As more than >> one directive can be added, `CompilerDirectivesAddDCmd::execute` will not >> behave as expected. >> - A Java method with old directives might be in the compilation queue. A >> request to recompile it with new directives will be ignored. >> >> There are other concerns: bugs and performance issues. >> >> Possible bugs: >> - `has_matching_directives` might not be cleared. A nmethod might get into >> the unloading state before `CodeCache::recompile_marked_directives_matches`. >> If the nmethod has been used to mark a Java method and it is the only >> nmethod, there will be no nmethod in CodeCache to reach the Java method to >> clear the mark. >> - A Java method might have been compiled with new directives before >> `CodeCache::recompile_marked_directives_matches`. >> `CodeCache::recompile_marked_directives_matches` will recompile it again. >> - JIT compiler might be compiling a Java method with old directives. A >> request to recompile it with new directives will be ignored. >> >> Performance issues: >> - Usually directives are updated for a small number of Java methods. If >> CodeCache has thousands of nmethods, >> `CodeCache::recompile_marked_directives_matches` will be traversing nmethods >> most of which don't need recompilation. >> >> The backout is not clean because of removal of `CompiledMethod`. >> >> Tested with release and fastdebug builds: tier1 and tier2 passed. > > IMO if nobody uses it and the amount of code is small, it is better to back > out it and to reimplement it. @eastig do you have tests which shows issues you listed in description? I don't see any reference to them in this sub-task and in [REDO] bug [JDK-8331749](https://bugs.openjdk.org/browse/JDK-8331749). How you found these issues? ------------- PR Comment: https://git.openjdk.org/jdk/pull/19215#issuecomment-2108154151