RFR: 8214302: Allow safely calling is_unloading() on zombie nmethods
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Nov 27 00:40:45 UTC 2018
Hi Erik,
Can you tell if there is any concurrency window where you check is_zombie and store new unloading state - can other
thread change nmethod to zombie?
I also noticed that CodeCache::unloading_cycle() is called twice in this code. Can we cache it in local?
Thanks,
Vladimir
On 11/26/18 7:30 AM, Erik Österlund wrote:
> Hi,
>
> It is currently not safe to call is_unloading on zombie nmethods, unless it has been observed to be alive. It should be
> supported to make the code less fragile. When encountering a !is_alive() nmethod that has not had its unloading epoch
> updated, and ask if it is_unloading(), the answer is always false. So by adding that, is_unloading() can always be
> safely called.
>
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8214302/webrev.00/
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8214302
>
> Thanks,
> /Erik
More information about the hotspot-compiler-dev
mailing list