RFR (XS): 8023037 : Race between ciEnv::register_method and nmethod::make_not_entrant_or_zombie
Roland Westrelin
roland.westrelin at oracle.com
Tue Nov 5 07:43:37 PST 2013
>> Does that mean StressNonEntrant is broken?
> Good point. Yes, StressNonEntrant is also broken.
Should we do something about it? remove it?
>> Would another fix be to have the sweeper check that the method was made ready to execute before it attempts to make it not entrant?
>>
>> i.e. nmethod->method()->code() == nmethod
> I don't see any reason why it shouldn't work as well. But it means that marking method as non-entrant is not reliable - doesn't necessarily perform state transition. I don't think we want that.
I meant change NMethodSweeper::process_nmethod():
if (!nm->is_locked_by_vm() && !nm->is_osr_method() && !nm->is_native_method() && nm->method()->code() == nm) {
Roland.
More information about the hotspot-compiler-dev
mailing list