RFR: 8268052: [JVMCI] non-default installed code must be marked as in_use
Erik Österlund
eosterlund at openjdk.java.net
Wed Jun 2 18:13:30 UTC 2021
On Wed, 2 Jun 2021 17:12:13 GMT, Tom Rodriguez <never at openjdk.org> wrote:
> Yes, directly scanning the code cache seemed like the only other path. It's unfortunate that the nmethod lifecycle seems to have gotten more complicated instead of less so. So it could really fail in some exceptionally weird circumstances.
Yes indeed. This is what motivated my work on https://openjdk.java.net/jeps/8221828
In my prototype, after removing inline caches, replacing it with an optimized table driven approach to method invocations, I could reduce the nmethod lifecycle down to a boolean: is_in_use(), which is true or false. No zombies, no unloaded, no unloading, no is_alive, no transient installation state, no separate "nmethod locking mechanism". I hope it hits mainline one day, because it reduces so much risk in our code base, by removing a huge amount of state machinery.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4283
More information about the hotspot-compiler-dev
mailing list