RFR[13]: 8224674: NMethod state machine is not monotonic

dean.long at oracle.com dean.long at oracle.com
Wed Jul 17 07:17:33 UTC 2019


On 7/16/19 10:51 AM, dean.long at oracle.com wrote:
> Back to the make_not_entrant / make_unloaded race.  If 
> make_not_entrant bails out half-way through because make_unloaded won 
> the race, doesn't that mean that make_unloaded needs to have already 
> done all the work that make_not_entrant is not doing? 
> unlink_from_method, invalidate_nmethod_mirror, remove_osr_nmethod, 
> unregister_nmethod, etc. 

What I'm thinking is, what happens if instead of this:

1365     // Change state
1366 if (!try_transition(state)) {
1367 return false;
1368 }
we do this: 1365     // Maybe change state
1366 if (!try_transition(state)) {
1367 // fall through 1368 }

dl



More information about the hotspot-dev mailing list