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