Request for review(M): 4930919: race condition in MDO creation at back branch locations

Igor Veresov igor.veresov at oracle.com
Sun Jan 9 20:56:19 PST 2011


The problem arises when a thread fails to allocate an MDO (by loosing 
the race) and so profile_method() returns 0. And then we reload the MDO 
pointer and see it's not null and has been just set by another thread 
which makes us decide that the data index value the profile_method() 
returned is valid.

The solution is to reuse set_method_data_for_bcp() set up mdp: make 
profile_method() just to create MDO and leave bcp->di translation for 
set_method_data_for_bcp().

Webrev: http://cr.openjdk.java.net/~iveresov/4930919/webrev.00/


More information about the hotspot-compiler-dev mailing list