RFR[13]: 8224674: NMethod state machine is not monotonic
    dean.long at oracle.com 
    dean.long at oracle.com
       
    Tue Jul  9 21:31:54 UTC 2019
    
    
  
On 7/1/19 6:12 AM, Erik Österlund wrote:
> For ZGC I moved OSR nmethod unlinking to before the unlinking (where 
> unlinking code belongs), instead of after the handshake (intended for 
> deleting things safely unlinked).
> Strictly speaking, moving the OSR nmethod unlinking removes the racing 
> between make_not_entrant and make_unloaded, but I still want the 
> monotonicity guards to make this code more robust. 
I see where you added OSR nmethod unlinking, but not where you removed 
it, so it's not obvious it was a "move".
Would it make sense for nmethod::unlink_from_method() to do the OSR 
unlinking, or to assert that it has already been done?
The new bailout in the middle of nmethod::make_not_entrant_or_zombie() 
worries me a little, because the code up to that point has side-effects, 
and we could be bailing out in an unexpected state.
dl
    
    
More information about the hotspot-dev
mailing list