RFR(S): 8028107: Kitchensink crashed with EAV

John Rose john.r.rose at oracle.com
Tue Dec 3 20:17:30 PST 2013


On Dec 3, 2013, at 6:25 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> Note, we have strange/swapped names for functions which check nmethod state:
> 
>  bool  is_in_use() const { return _state == alive; }
>  bool  is_alive() const  { return _state == alive || _state == not_entrant; }

If you can do so in a few more diff lines, I suggest fixing this by changing the enum value 'alive' to be 'in_use'.

If CompiledIC_lock causes a safepoint, and then the callee nmethod is unloaded, what guarantees that the callee nmethod will not be reallocated to some unrelated code blob in the code cache?

The logic of your fix assumes that even after an unload, it is still valid to query callee_nm->is_in_use().  Could that be a dangling pointer?

— John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20131203/6aefbe64/attachment.html 


More information about the hotspot-compiler-dev mailing list