On Mon, 13 May 2024 13:03: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.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19215#issuecomment-2107809381

Reply via email to