review (S) for 7028374: race in fix_oop_relocations for scavengeable nmethods

Tom Rodriguez tom.rodriguez at
Thu Mar 17 16:34:02 PDT 2011

On Mar 17, 2011, at 4:28 PM, Vladimir Kozlov wrote:

> This looks good.
> Again I want parens around arithmetic expressions in assert checks in relocInfo_x86.cpp:
> +       assert(*(int32_t*) disp == x - next_ip, "instructions must match");
> +     assert(*pd_address_in_code() == x + o, "instructions must match");



> Thanks,
> Vladimir
> Tom Rodriguez wrote:
>> 7028374: race in fix_oop_relocations for scavengeable nmethods
>> Reviewed-by:
>> In ScavengeRootsInCode mode oops could sometimes be udpated after
>> their relocations had been updated, resulting in stale oops in
>> generated code.  The fix is to move the rewriting of the relocations
>> to the epilogue part of the scavenge nmethods logic.  I also added
>> verification of the CodeCache which would have detected this problem
>> immediately.  The statics in Class changes will be laid on top of
>> these changes.  Tested with statics changes with jbb.

More information about the hotspot-dev mailing list