Shenandoah: SBSA::load_at() should save/restore registers when calling SATB barrier

Zhengyu Gu zgu at redhat.com
Mon Oct 7 11:31:53 UTC 2019


>>
>> Webrev:
>> http://cr.openjdk.java.net/~zgu/shenandoah/load_at_keepalive_fix/webrev.01/
> 
> Is that the same patch as before?

No. This patch pushes/pops rax and rbx in SBSA::load_at() (Line# 495 - 
499 and 512 - 514.

Thanks,

-Zhengyu

> 
> Roman
> 
> 
>>>>>> This fix also fixes the intermittent is_loader_alive() assertion we
>>>>>> have
>>>>>> seen in nightly tests. While this assertion is relative rare on
>>>>>> x86_64,
>>>>>> but it is quite reproducible on x86_32 (because of it has less
>>>>>> registers(?)). With this fix, I have yet seen once.
>>
>> Unfortunately, this assertion failure came back during stress runs (put
>> tier3 tests in loop) over the weekend, sigh! But I think they are
>> different issues and this change should stay.
>>
>> Thanks,
>>
>> -Zhengyu
>>
>>
>>>>>>
>>>>>>
>>>>>> Webrev:
>>>>>> http://cr.openjdk.java.net/~zgu/shenandoah/load_at_keepalive_fix/webrev.00/
>>>>>>
>>>>>>
>>>>>>
>>>>>> Test:
>>>>>>      hotspot_gc_shenandoah (fastdebug and release) x86_64 and x86_32 on
>>>>>> Linux
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> -Zhengyu
>>>>>>
>>>>>
>>>
> 


More information about the shenandoah-dev mailing list