RFR(s): 8218147: make_walkable asserts on multiple calls

Robbin Ehn robbin.ehn at oracle.com
Fri Apr 5 15:43:05 UTC 2019


Hi Dean,

Sorry, I missed this mail.
Yes we can do that.
Ignore my other mail, I'll update.

Thanks, Robbin


dean.long at oracle.com skrev: (5 april 2019 09:22:24 CEST)
>On 4/4/19 5:16 PM, dean.long at oracle.com wrote:
>>
>>>>
>>>> If it's already set, should we check that _last_Java_pc matches the
>
>>>> new value?
>>>
>>> We manually set the pc in several places, so if it's set, it's not 
>>> certain that
>>> it should be the same as in last sp.
>>> I can't distinguish between the cases.
>>>
>>
>> If we get pc from sp[-1] then it should match, but you're right, we 
>> sometimes get pc from somewhere else. 
>
>How about if we combine the !walkable check and the 
>capture_last_Java_pc() logic into a single method?
>Then we can do something like:
>
>     if (!walkable()) {
>         address pc = (address)_last_Java_sp[-1];
>         address a = Atomic::cmpxchg(pc, &_last_Java_pc, NULL);
>         assert(a == NULL || a == pc, "unexpected PC %p", a);
>     }
>
>dl


More information about the hotspot-compiler-dev mailing list